老师您好,我有两个疑问
来源:5-11 批归一化实战(2)
qq_Ken_cklBKS
2022-03-13
在5-11这一节课里,我不太能理解以下两个问题:
1、请问老师这里的is_training为何是False,这里不还是属于train的部分吗,应该开启batch normalization才对吧?
2、对于这节课训练的结果,为何train的准确值很高,平均有90吧 ,而test准确率却低的离谱,大概只有30左右?
写回答
1回答
-
同学你好,
问题1, 那里是在测试集上做评估,所以不能打开is_training. 有没有batch_normalization并不是由is_training控制的,is_training控制的是所有的参数要不要进行梯度更新。
问题2:下面这段code我加到git代码中了,你加上应该能正常:
with tf.name_scope('train_op'): # train_op = tf.train.AdamOptimizer(1e-3).minimize(loss) optimizer = tf.train.AdamOptimizer(1e-3) update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS) # 有两个方案使用batch_normalization,第一种如下面的代码使用control dependencies, # 第二种是不使用control_dependencies, 但在下面训练代码中调sess.run的时候,把update_ops也加进去,即 # sess.run([train_op, update_ops, ..], feed_dict = ..) with tf.control_dependencies(update_ops): train_op = optimizer.minimize(loss)
012022-03-13
相似问题