(1) 应用SavedModel Builder保存模型
接下来我们测验测验应用SavedModelBuilder类完成模型的保存。在我们的示例中,我们不应用任何符号,但也足以解释该过程。
- tf.reset_default_graph()
- # Re-initialize our two variables
- h_est = tf.Variable(h_est2, name='hor_estimate2')
- v_est = tf.Variable(v_est2, name='ver_estimate2')
- # Create a builder
- builder = tf.saved_model.builder.SavedModelBuilder('./SavedModel/')
- # Add graph and variables to builder and save
- with tf.Session() as sess:
- sess.run(h_est.initializer)
- sess.run(v_est.initializer)
- builder.add_meta_graph_and_variables(sess,
- [tf.saved_model.tag_constants.TRAINING],
- signature_def_map=None,
- assets_collection=None)
- builder.save()
(1) 保存模型
- $ python tf_saved_model_builder.py
- INFO:tensorflow:No assets to save.
- INFO:tensorflow:No assets to write.
- INFO:tensorflow:SavedModel written to: b'./SavedModel/saved_model.pb'
运行此代码时,你会留意到我们的模型已保存到位于“./SavedModel/saved_model.pb”的文件中。
也可以应用以下敕令摸索当前图形tf.get_default_graph()。接着第二步是加载变量的值。提示:值仅存在于会话(session)中。
(2) 应用SavedModel Loader法度榜样恢复模型
模型恢复应用tf.saved_model.loader,并且可以恢复会话范围中保存的变量,符号。
个中h是水平和v是垂直的变更。
鄙人面的例子中,我们将加载模型,并打印出我们的两个系数(h_est和v_est)的数值。数值如预期的那样,我们的模型已经被成功地恢复了。
- with tf.Session() as sess:
- tf.saved_model.loader.load(sess, [tf.saved_model.tag_constants.TRAINING], './SavedModel/')
- h_est = sess.run('hor_estimate2:0')
- v_est = sess.run('ver_estimate2:0')
- print("h_est: %.2f, v_est: %.2f" % (h_est, v_est))