如何将 TensorFlow Lite 模型量化为 16 位

How to quantize TensorFlow Lite model to 16-bit

以下代码片段创建一个 8 位量化 TF Lite 模型,并将 QUANTIZED_UINT8 替换为 FLOAT 创建一个 32 位模型。是否有创建 16 位量化模型的标志?我搜索了 TF Lite 文档,但在可能的标志列表中找不到任何文档。有人知道怎么做吗?

~/tensorflow/bazel-bin/tensorflow/contrib/lite/toco/toco \
  --input_file=$(pwd)/model.pb \
  --input_format=TENSORFLOW_GRAPHDEF \
  --output_format=TFLITE \
  --output_file=$(pwd)/model.lite --inference_type=QUANTIZED_UINT8 \
  --input_type=QUANTIZED_UINT8 --input_arrays=conv2d_1_input \
  --default_ranges_min=0.0 --default_ranges_max=1.0 \
  --output_arrays=average_pooling2d_2/AvgPool --input_shapes=1024,32,32,2

目前,TFLite 唯一支持的 8 位量化类型。看这里:https://github.com/tensorflow/tensorflow/blob/54b62eed204fbc4e155fbf934bee9b438bb391ef/tensorflow/lite/toco/types.proto#L27

这是因为,对于现有的量化模型,发现 8 位就足够了,但这可能会改变。如果您的模型需要更多位来进行量化,那么创建一个描述您的用例的 TensorFlow 问题可能是值得的。