我们可以在使用张量流模型中使用 .pbtxt 而不是 .pb 文件吗?



我创建了一个生成.pbtxt文件的Tensorflow模型。我可以在构建 Android 应用程序时使用此文件以通过将生成的模型重命名为 .pb 文件来使用它吗?

提前谢谢。

如果.pbtxt文件真的是TensorFlow图的文本表示,那么不,Android API目前不接受,而是需要图的二进制表示。

也就是说,如果你有.pbtxt文件,你可以很容易地用几行Python将其转换为二进制协议缓冲区:

import tensorflow as tf
from google.protobuf import text_format
with open('/tmp/myfile.pbtxt') as f:
txt = f.read()
gdef = text_format.Parse(txt, tf.GraphDef())
tf.train.write_graph(gdef, '/tmp', 'myfile.pb', as_text=False)

或者,如果您控制生成pbtxt文件的管道,也许您可以将其更改为以二进制格式写出文件?

希望有帮助。

似乎你可以在这里找到你的答案,但首先你需要.ckpt文件。

将CMD释放图为模型,注意输出节点名称,可以从.pbtxt文件中获取。

bazel-bin/tensorflow/python/tools/freeze_graph --input_graph=/home/scopeserver/RaidDisk/DeepLearning/resnetv2.pbtxt --input_checkpoint=/home/scopeserver/RaidDisk/DeepLearning/slim/inception_resnet_v2.ckpt --output_graph=./inception_resetv2.pb --output_node_names=InceptionResnetV2/Logits/Predictions

您可以在 Android 应用中将此命令作为 gradle 任务运行。

最新更新