如何在将 keras 模型转换为 TensorflowJS 层模型时对其进行量化?

How can I quantize a keras model while converting it to a TensorflowJS Layers Model?

我创建了一个张量流模型,然后使用以下代码将其转换为 tensorflow.js 模型:

import tensorflowjs as tfjs
from tensorflow.keras.models import load_model

classifier = load_model("model")
tfjs.converters.save_keras_model(classifier, "js")

它工作正常,现在我想在将模型转换为 TensorflowJS 层模型时使用量化来减小模型的大小。

是的,您可能有四个量化选项:

  1. --quantization_bytes(已弃用)
  2. --quantize_float16
  3. --quantize_uint8
  4. --quantize_uint16

从 keras 格式到 tfjs_layers_model 的示例转换:

tensorflowjs_converter \
   --input_format keras \
   --output_format tfjs_layers_model \
   --quantize_uint16 \
   original_model/model.json
   quantized_model/

或者,如果您在整个过程中需要更多帮助,只需在您的终端中输入以下内容

tensorflowjs_wizard

More info from Tensorflowjs Converter

使用命令行工具,我可以将我的模型转换为量化的 tensorflow.js 模型。

我使用了以下命令:

~/.local/bin/tensorflowjs_converter model/ quantized_model/
--input_format tf_saved_model --output_format tfjs_graph_model --quantize_uint8

我以用户身份安装了 python 模型,因此命令行工具位于:~/.local/bin/