1

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

可能是什么原因?

4

0 回答 0