gpt4 book ai didi

Tensorflow 保存/恢复批量归一化

转载 作者:行者123 更新时间:2023-12-03 00:40:19 24 4
gpt4 key购买 nike

我在 Tensorflow 中训练了一个具有批归一化的模型。我想保存模型并恢复它以供进一步使用。批量归一化是通过

完成的
def batch_norm(input, phase):
return tf.layers.batch_normalization(input, training=phase)

训练期间相位为 True,测试期间相位为 False

看起来就像简单地调用

saver = tf.train.Saver()
saver.save(sess, savedir + "ckpt")

效果不佳,因为当我恢复模型时,它首先说恢复成功。它还表示如果我只运行图中的一个节点,则尝试使用未初始化的值batch_normalization_585/beta。这是否与未正确保存模型或我错过的其他内容有关?

最佳答案

我还遇到了“尝试使用未初始化值batch_normalization_585/beta”错误。这是因为通过使用空括号声明保护程序,如下所示:

         saver = tf.train.Saver() 

保存程序将保存 tf.trainable_variables() 中包含的变量,这些变量不包含批量归一化的移动平均值。要将此变量包含到保存的 ckpt 中,您需要执行以下操作:

         saver = tf.train.Saver(tf.global_variables())

这会保存所有变量,因此非常消耗内存。或者,您必须识别具有移动平均值或方差的变量,并通过如下声明来保存它们:

         saver = tf.train.Saver(tf.trainable_variables() + list_of_extra_variables)

关于Tensorflow 保存/恢复批量归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45800871/

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