gpt4 book ai didi

python - TensorFlow 急切模式 : How to restore a model from a checkpoint?

转载 作者:太空狗 更新时间:2023-10-29 21:27:56 24 4
gpt4 key购买 nike

我在 TensorFlow eager 模式下训练了一个 CNN 模型。现在,我正在尝试从检查点文件恢复经过训练的模型,但没有取得任何成功。

我发现的所有示例(如下所示)都在谈论将检查点恢复到 session 。但我需要的是将模型恢复到急切模式,即不创建 session 。

with tf.Session() as sess:
# Restore variables from disk.
saver.restore(sess, "/tmp/model.ckpt")

基本上我需要的是:

tfe.enable_eager_execution()
model = tfe.restore('model.ckpt')
model.predict(...)

然后我可以使用该模型进行预测。

有人可以帮忙吗?

更新

可以在以下位置找到示例代码:mnist eager mode demo

我尝试按照@Jay Shah 的回答中的步骤进行操作,它几乎成功了,但恢复的模型中没有任何变量。

tfe.save_network_checkpoint(model,'./test/my_model.ckpt')

Out[58]:
'./test/my_model.ckpt-1720'

model2 = MNISTModel()
tfe.restore_network_checkpoint(model2,'./test/my_model.ckpt-1720')
model2.variables

Out[72]:
[]

原始模型中有很多变量。:

model.variables

[<tf.Variable 'mnist_model_1/conv2d/kernel:0' shape=(5, 5, 1, 32) dtype=float32, numpy=
array([[[[ -8.25184360e-02, 6.77833706e-03, 6.97569922e-02,...

最佳答案

Eager Execution 仍然是 TensorFlow 中的一项新功能,并没有包含在最新版本中,因此并非所有功能都受支持,但幸运的是,从保存的检查点加载模型是受支持的。

您需要使用 tfe.Saver 类(它是 tf.train.Saver 类的薄包装),您的代码应如下所示:

saver = tfe.Saver([x, y])
saver.restore('/tmp/ckpt')

其中 [x,y] 表示您希望恢复的变量和/或模型列表。这应该与最初创建创建检查点的保存程序时传递的变量精确匹配。

可以找到更多详细信息,包括示例代码here , 可以找到 saver 的 API 详细信息 here .

关于python - TensorFlow 急切模式 : How to restore a model from a checkpoint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47852516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com