采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在5-11这一节课里,我不太能理解以下两个问题: 1、请问老师这里的is_training为何是False,这里不还是属于train的部分吗,应该开启batch normalization才对吧?
2、对于这节课训练的结果,为何train的准确值很高,平均有90吧 ,而test准确率却低的离谱,大概只有30左右?
同学你好,
问题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)
非常感谢!
登录后可查看更多问答,登录/注册
深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN
2.0k 9
2.2k 8
1.6k 7
1.7k 7
2.5k 7
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号