请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师您好,我有两个疑问

在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)


0 回复 有任何疑惑可以回复我~
  • 提问者 qq_Ken_cklBKS #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2022-03-13 23:19:09
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号