Tensorflow批量_范数中的模型变量

Tensorflow批量_范数中的模型变量,tensorflow,Tensorflow,在线文档称,移动平均和移动方差都是模型变量,tf.model变量返回局部变量类型的张量。这是否意味着在保存状态时不会保存model_变量 我正在尝试将批量标准化应用于两个3D卷积和完全连接的层。我用batch_norm训练我的网络并保存了一个检查点文件,但当我去恢复我保存的状态时,它说无法找到移动的意思。确切的错误是,当TF将恢复的值分配给移动平均值时,lhs张量[]的形状和rhs张量的形状不一致[20] 当我不在图层周围添加batch_norm时,图形恢复良好。 我计划在培训结束时添加一个全局

在线文档称,移动平均和移动方差都是模型变量,tf.model变量返回局部变量类型的张量。这是否意味着在保存状态时不会保存model_变量

我正在尝试将批量标准化应用于两个3D卷积和完全连接的层。我用batch_norm训练我的网络并保存了一个检查点文件,但当我去恢复我保存的状态时,它说无法找到移动的意思。确切的错误是,当TF将恢复的值分配给移动平均值时,lhs张量[]的形状和rhs张量的形状不一致[20]

当我不在图层周围添加batch_norm时,图形恢复良好。 我计划在培训结束时添加一个全局变量,以保存移动平均值和移动方差值。这是TF打算让我使用batch_norm的方式吗


谢谢

变量moving_mean和moving_variance不在我的保存声明中,因为我已将更新集合设置为其默认值。因为我在运行层时从未包含控件依赖项,所以这些变量从未更新

代码包括:

from tensorflow.python import control_flow_ops

update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
if update_ops:
    updates = tf.tuple(update_ops)
    total_loss = control_flow_ops.with_dependencies(updates, total_loss)
或设置

updates_collection=None 
以获取就地更新

有关更多信息,请参阅和