作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现在Tensorflow中保存模型的2种方法:tf.train.Saver()
和SavedModelBuilder
。但是,在第二种方式加载后无法找到有关使用模型的文档。
注意:我想使用SavedModelBuilder
方式,因为我在Python中训练了该模型,并会在服务时以另一种语言(Go)使用它,并且在这种情况下SavedModelBuilder
似乎是唯一的方式。
这非常适合tf.train.Saver()
(第一种方式):
model = tf.add(W * x, b, name="finalnode")
# save
saver = tf.train.Saver()
saver.save(sess, "/tmp/model")
# load
saver.restore(sess, "/tmp/model")
# IMPORTANT PART: REALLY USING THE MODEL AFTER LOADING IT
# I CAN'T FIND AN EQUIVALENT OF THIS PART IN THE OTHER WAY.
model = graph.get_tensor_by_name("finalnode:0")
sess.run(model, {x: [5, 6, 7]})
tf.saved_model.builder.SavedModelBuilder()
是在
Readme中定义的,但是在使用
tf.saved_model.loader.load(sess, [], export_dir)
加载模型之后,我找不到有关返回节点的文档(请参见上面代码中的
"finalnode"
)
最佳答案
缺少的是signature
# Saving
builder = tf.saved_model.builder.SavedModelBuilder(export_dir)
builder.add_meta_graph_and_variables(sess, ["tag"], signature_def_map= {
"model": tf.saved_model.signature_def_utils.predict_signature_def(
inputs= {"x": x},
outputs= {"finalnode": model})
})
builder.save()
# loading
with tf.Session(graph=tf.Graph()) as sess:
tf.saved_model.loader.load(sess, ["tag"], export_dir)
graph = tf.get_default_graph()
x = graph.get_tensor_by_name("x:0")
model = graph.get_tensor_by_name("finalnode:0")
print(sess.run(model, {x: [5, 6, 7, 8]}))
关于tensorflow - 如何在 tensorflow 上加载和使用保存的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45705070/
我是一名优秀的程序员,十分优秀!