我有一个模型,在每个卷积层期望最后一个之后我执行批量标准化。我使用函数tensorflow.contrib.layers.batch_norm函数来执行此操作。当我将is__training标志设置为True时,报告的丢失值似乎是正确的。对于我的特定示例,它从60s开始并减少到几乎为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
可能是什么原因?