冻结 TensorFlow 图以在 iOS 应用中使用

Freeze TensorFlow graph to use in iOS app

我有以下文件: 1. retrained_graph.pb 2. retrained_labels.txt 3. _retrain_checkpoint.meta 4. _retrain_checkpoint.index 5. _retrain_checkpoint.data-00000-of-00001 6.检查点

执行的命令:

python freeze_graph.py 
--input_graph=/Users/saurav/Desktop/example/tmp/retrained_graph.pb 
--input_checkpoint=./_retrain_checkpoint 
--output_graph=/Users/saurav/Desktop/example/tmp/frozen_graph.pb --output_node_names=softmax

获取错误: UnicodeDecodeError:'utf-8' 编解码器无法解码位置 44 中的字节 0xff:起始字节无效

截图如下:

终于找到答案了。要冻结您需要使用 "bazel" 构建的图表。 1.使用自制软件安装bazel。 brew install bazel 2. 如果您没有自制软件,请安装它。

/usr/bin/ruby -e "$(curl -fsSL \
https://raw.githubusercontent.com/Homebrew/install/master/install)" 
  1. 通过命令克隆tensorflow git clone https://github.com/tensorflow/tensorflow
  2. 在终端中将目录更改为 tensorflow
  3. 运行 命令./配置。它问几个问题,根据您的需要回答。您可以键入其中的大多数 "NO"。它询问 Python 的默认路径,您需要指定路径或直接点击 "enter"。
  4. 现在使用命令为 freeze_graph 构建 bazel: bazel build tensorflow/python/tools:freeze_graph
  5. 将重新训练的图和检查点保存在文件夹中。
  6. 运行 bazel 命令冻结图形。

bazel-bin/tensorflow/python/tools/freeze_graph \ --input_graph=YouDirectory/retrained_graph.pb \ --input_checkpoint=YouDirectory/_retrain_checkpoint \ --output_graph=YouDirectory/frozen_graph.pb