老师您好,我有两个疑问

来源:5-11 批归一化实战(2)

qq_Ken_cklBKS

2022-03-13

在5-11这一节课里,我不太能理解以下两个问题:
1、请问老师这里的is_training为何是False,这里不还是属于train的部分吗,应该开启batch normalization才对吧?
图片描述

2、对于这节课训练的结果,为何train的准确值很高,平均有90吧 ,而test准确率却低的离谱,大概只有30左右?
图片描述

写回答

1回答

正十七

2022-03-13

同学你好,

问题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
1
qq_Ken_cklBKS
非常感谢!
2022-03-13
共1条回复

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程