Tensorflow:如何在应用程序中使用训练有素的模型?

时间:2017-01-22 22:43:28

标签: python tensorflow

我已经训练了Tensorflow模型,现在我想导出"功能"在我的python程序中使用它。这是可能的,如果是的话,怎么样?任何帮助都会很好,在文档中找不到多少。 (我不想保存会话!)

我现在按照你的建议存储了会话。我现在正在加载它:

f = open('batches/batch_9.pkl', 'rb')
input = pickle.load(f)
f.close()
sess = tf.Session()

saver = tf.train.Saver()
saver.restore(sess, 'trained_network.ckpt')
y_pred = []

sess.run(y_pred, feed_dict={x: input})

print(y_pred)

然而,我收到错误"没有要保存的变量"当我尝试初始化保护程序时。

我想要做的是:我正在为棋盘游戏编写机器人,输入是板上的情况,格式化为张量。现在我想要返回一个张量,它给我下一个最好的位置,即一个0到处的张量和1个位置。

1 个答案:

答案 0 :(得分:9)

我不知道是否有其他方法可以做到这一点,但您可以通过保存会话在另一个Python程序中使用您的模型:

您的培训代码:

# build your model

sess = tf.Session()
# train your model
saver = tf.train.Saver()
saver.save(sess, 'model/model.ckpt')

在您的申请中:

# build your model (same as training)
sess = tf.Session()
saver = tf.train.Saver()
saver.restore(sess, 'model/model.ckpt')

然后,您可以使用feed_dict评估模型中的任何张量。这显然取决于你的模型。例如:

session.run(y_pred, feed_dict={x: input_data})