Tensorflow - 将.pbtxt模型转换为.tflite

时间:2018-03-09 09:17:48

标签: python tensorflow machine-learning classification

我正在尝试一个汽车评估分类的例子 http://archive.ics.uci.edu/ml/datasets/Car+Evaluation

我成功地训练了模型和打印预测 使用以下code

我正在关注此page,以便将.pb模型转换为.tflite

我已成功构建冻结图

bazel build tensorflow/python/tools:freeze_graph

现在我在运行以下命令时面临问题

bazel-bin/tensorflow/python/tools/freeze_graph\
    --input_graph=/CarEvaluation/mobilenet_v1_224.pb \
    --input_checkpoint=/CarEvaluation/checkpoints/mobilenet-10202.ckpt \
    --input_binary=true --output_graph=/CarEvaluation/frozen_mobilenet_v1_224.pb \
    --output_node_names=CarEvaluation/Predictions/Reshape_1

问题是在模型目录中我有.pbtxt个文件而不是.pb 而且我也无法在模型目录中找到.ckpt文件,我有一个简单的检查点文件和几个.ckpt元数据和索引文件,其中一些数字作为后缀。

我尝试使用.pbtxt文件运行上面的命令,我收到此异常

   input_graph_def.ParseFromString(f.read())
google.protobuf.message.DecodeError: Error parsing message

2 个答案:

答案 0 :(得分:0)

使用.pbtxt和编号最高的.ckpt

即。类似的东西:

bazel-bin/tensorflow/python/tools/freeze_graph\
    --input_graph=/CarEvaluation/mobilenet_v1_224.pbtxt \
    --input_checkpoint=/CarEvaluation/checkpoints/mobilenet-10202.ckpt-2000 \
    --input_binary=true --output_graph=/CarEvaluation/frozen_mobilenet_v1_224.pb \
    --output_node_names=CarEvaluation/Predictions/Reshape_1

答案 1 :(得分:0)

据我从freeze_graph代码中了解到,当你想将它与pbtxt文件一起使用时,你需要省略--input_binary = true选项,因为输入文件不再是二进制文件。