gpt4 book ai didi

android - 如何从 python 中的 .pb 文件恢复 Tensorflow 模型?

转载 作者:太空狗 更新时间:2023-10-29 17:58:25 25 4
gpt4 key购买 nike

我有一个 tensorflow .pb 文件,我想将其加载到 python DNN 中,恢复图表并获得预测。我这样做是为了测试创建的 .pb 文件是否可以做出类似于普通 Saver.save() 模型的预测。

我的基本问题是,当我使用上述 .pb 文件在 Android 上进行预测时,得到的预测值非常不同

我的 .pb 文件创建代码:

frozen_graph = tf.graph_util.convert_variables_to_constants(
session,
session.graph_def,
['outputLayer/Softmax']
)
with open('frozen_model.pb', 'wb') as f:
f.write(frozen_graph.SerializeToString())

所以我主要担心两个问题:

  1. 如何将上述 .pb 文件加载到 python Tensorflow 模型?
  2. 为什么我在 python 和 android 中得到完全不同的预测值?

最佳答案

以下代码将读取模型并打印出图中节点的名称。

import tensorflow as tf
from tensorflow.python.platform import gfile
GRAPH_PB_PATH = './frozen_model.pb'
with tf.Session() as sess:
print("load graph")
with gfile.FastGFile(GRAPH_PB_PATH,'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
sess.graph.as_default()
tf.import_graph_def(graph_def, name='')
graph_nodes=[n for n in graph_def.node]
names = []
for t in graph_nodes:
names.append(t.name)
print(names)

您正在正确卡住图形,这就是为什么您得到不同结果的原因,基本上权重没有存储在您的模型中。您可以使用 freeze_graph.py ( link ) 获取正确存储的图形。

关于android - 如何从 python 中的 .pb 文件恢复 Tensorflow 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50632258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com