【问题标题】:How can I quantize a keras model while converting it to a TensorflowJS Layers Model?如何量化 keras 模型,同时将其转换为 TensorflowJS 层模型?
【发布时间】:2020-09-18 05:21:05
【问题描述】:

我创建了一个 tensorflow 模型,然后使用以下代码将其转换为 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 层模型时使用量化来减小模型的大小。

【问题讨论】:

    标签: python tensorflow optimization tensorflow.js quantization


    【解决方案1】:

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

    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

    【讨论】:

    • 谢谢!是否可以在 python 代码中使用这些选项?
    • 您好,如果您的系统上安装了 Tensorflowjs,您可以从终端执行所有这些操作,您不会有任何问题。如果您对整个过程有点困惑,那么只需使用 Tensorflowjswizard。
    • 我可以使用命令行工具进行量化。谢谢你。我想在 python 中使用它,但这是不可能的,对吧?
    • 根据文档,它只能从命令行获得
    【解决方案2】:

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

    我使用了以下命令:

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

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

    【讨论】:

      猜你喜欢
      • 2018-10-08
      • 2019-10-13
      • 2020-04-13
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多