我正在TensorFlow服务中运行TensorFlow广泛而深入的模型,并导出经过训练的模型,我使用的是代码段
with tf.Session() as sess:
init_op = tf.initialize_all_variables()
saver = tf.train.Saver()
m.fit(input_fn=lambda: input_fn(df_train), steps=FLAGS.train_steps)
print('model successfully fit!!')
results = m.evaluate(input_fn=lambda: input_fn(df_test), steps=1)
for key in sorted(results):
print("%s: %s" % (key, results[key]))
model_exporter = exporter.Exporter(saver)
model_exporter.init(
sess.graph.as_graph_def(),
init_op=init_op,
named_graph_signatures={
'inputs': exporter.generic_signature({'input':df_train}),
'outputs': exporter.generic_signature({'output':df_train[impressionflag]})})
model_exporter.export(export_path, tf.constant(FLAGS.export_version), sess)
print ('Done exporting!')
但是,在使用命令saver = tf.train.Saver()
时,错误ValueError: No variable to save is displayed
在这里输入图像描述
如何保存模型,以便在tensorflow标准服务器中加载导出模型时需要创建一个可服务的模型?任何帮助都是非常感谢的。
发布于 2016-11-17 12:35:42
图表和会话包含在Estimator中,不公开或泄漏。因此,通过使用Estimator.export(),我们可以导出模型并创建一个可在model_servers上运行的servable。
发布于 2017-05-09 10:42:55
现在不推荐Estimator.export()
了,所以您需要使用Estimator.export_savedmodel()
。
在这里,我编写了一个简单的教程TensorFlow Wide & Deep的导出和服务。
TL;DR
要导出估计器,有四个步骤:
create_feature_spec_for_parsing
创建一个特性配置。serving_input_fn
服务的input_fn_utils.build_parsing_serving_input_fn
。export_savedmodel()
导出模型。要正确运行客户端脚本,您需要执行以下三个步骤:
py_binary
创建或修改相应的生成文件。tensorflow_model_server
。tensorflow_model_server
以进行推理的客户端。有关详细信息,请参阅教程本身。
希望能帮上忙。
发布于 2016-11-16 10:07:29
那么你的图有变量吗?如果没有,并且所有操作都使用常量,则可以在保护程序构造函数中指定一个标志。
saver = tf.train.Saver(allow_empty=True)
https://stackoverflow.com/questions/40470308
复制相似问题