我创建了一个生成.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 任务运行。