当is_training标志为False时,tensorflow批量标准化使得没有按预期工作

时间:2017-09-13 02:21:27

标签: tensorflow deep-learning batch-normalization

我有一个模型,在每个卷积层期望最后一个之后我执行批量标准化。我使用函数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

可能是什么原因?

0 个答案:

没有答案