tensorflow批量标准化给出了';当is_训练标志为False时,不能按预期工作

tensorflow批量标准化给出了';当is_训练标志为False时,不能按预期工作,tensorflow,deep-learning,batch-normalization,Tensorflow,Deep Learning,Batch Normalization,我有一个模型,在这个模型中,除了最后一层,我在每个卷积层之后执行批处理规范化。我使用函数tensorflow.contrib.layers.batch_norm来实现这一点。当我将is__training标志设置为True时,报告的损失值似乎是正确的。在我的例子中,它从60秒开始,几乎降到0。当我将is_training标志设置为flase时,我得到的损失值为1e10,这似乎很荒谬 我已经附加了我在代码中使用的代码片段 loss=loss_func_l2(logits,y) update_ops

我有一个模型,在这个模型中,除了最后一层,我在每个卷积层之后执行批处理规范化。我使用函数tensorflow.contrib.layers.batch_norm来实现这一点。当我将is__training标志设置为True时,报告的损失值似乎是正确的。在我的例子中,它从60秒开始,几乎降到0。当我将is_training标志设置为flase时,我得到的损失值为1e10,这似乎很荒谬

我已经附加了我在代码中使用的代码片段

loss=loss_func_l2(logits,y)
update_ops=tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
  optimizer=tf.train.AdamOptimizer(learning_rate=lr)
  Trainables=optimizer.minimize(loss)
#Training 
sess=tf.Session()
training(train_output,train_input,sess) # is_training is true here
#validation
validate(test_output,train_input,sess) # is_training is false here
原因可能是什么