我正在尝试导出经过重新训练的初始模型。我读过这个几乎类似的问题here https://stackoverflow.com/questions/43001719/deploy-retrained-inception-savedmodel-to-google-cloud-ml-engine以及那里提到的资源。
但导出图表后,variables
文件夹为空其中应该包含保存图形序列化变量的文件(我想说的是,saved_model.pb 是正确创建的)。
我正在使用 TensorFlow 1.2.1 和 Python 3.5.2。
其实我已经放了一个简单的print(tf.trainable_variables())
在会话内部,但它是一个空列表。
这是我导出图表的函数:
def export_tf_model(graph_path, export_dir):
builder = tf.saved_model.builder.SavedModelBuilder(export_dir)
with tf.gfile.FastGFile(graph_path, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
tf.import_graph_def(graph_def, name='')
with tf.Session() as sess:
g = sess.graph
# print variables
print(tf.trainable_variables())
in_image = g.get_tensor_by_name('DecodeJpeg/contents:0')
inputs = {'images': tf.saved_model.utils.build_tensor_info(in_image)}
out_classes = g.get_tensor_by_name('final_result:0')
outputs = {'scores': tf.saved_model.utils.build_tensor_info(out_classes)}
signature = tf.saved_model.signature_def_utils.build_signature_def(
inputs=inputs,
outputs=outputs,
method_name=signature_constants.PREDICT_METHOD_NAME
)
builder.add_meta_graph_and_variables(
sess,
[tag_constants.SERVING],
signature_def_map={
signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature},
)
builder.save()
我无法弄清楚问题出在哪里?
我试过了mnist_saved_model.py
来自官方教程,它可以很好地导出图形和变量。但我看到它正在培训和出口。导出图之前需要进行训练吗?如果是的话我应该怎么做
我认为这个问题与冻结有关pb
模型,变量在冻结图期间已转换为常量(参见文档here https://www.tensorflow.org/mobile/prepare_models#how_do_you_get_a_model_you_can_use_on_mobile)。使用初始ckpt
相反,模型文件,也许这些线程有帮助:# 1938 https://github.com/tensorflow/models/issues/1988, #2045 https://github.com/tensorflow/models/issues/2045
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)