首页 > 解决方案 > .tflite 的 tensorflow toco 命令

问题描述

我正在遵循TFLite Android的步骤

我无法使用 toco 命令,因此无法生成:“optimized_graph.lite”

这是我使用的命令:

    IMAGE_SIZE=224
toco \
  --graph_def_file=tf_files/retrained_graph.pb \
  --output_file=tf_files/optimized_graph.lite \
  --input_format=TENSORFLOW_GRAPHDEF \
  --output_format=TFLITE \
  --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 \
  --input_array=input \
  --output_array=final_result \
  --inference_type=FLOAT \
  --input_data_type=FLOAT

错误是:

F tensorflow/contrib/lite/toco/toco.cc:46] 检查失败:parsed_toco_flags.input_file.specified() 缺少必需的标志:input_file

我已经仔细按照说明,在 Mac OS 上,tensorflow 版本是 1.7

标签: tensorflowtoco

解决方案


当我跑

toco --help

--graph_def_file在这个命令的选项中没有看到。相反,我找到--input_file了,它的意思是 输入文件(任何支持格式的模型)。对于 Protobuf 格式,无论文件扩展名如何,都支持文本和二进制文件。

在我替换--graph_def_file为之后--input_file,该命令起作用并且我得到了一个 optimize_graph.lite 文件。

下面是完整的命令。

toco \
  --input_file=tf_files/retrained_graph.pb \
  --output_file=tf_files/optimized_graph.lite \
  --input_format=TENSORFLOW_GRAPHDEF \
  --output_format=TFLITE \
  --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 \
  --input_array=input \
  --output_array=final_result \
  --inference_type=FLOAT \
  --input_data_type=FLOAT

推荐阅读