开了batch_norm,训练集acc很高,而测试集acc很低怎么解决

因为batch_norm的两个平移缩放参数在训练的时候没有更新,需要手动更新一下

step = tf.get_variable("step", [], initializer=tf.constant_initializer(0.0), trainable=False)
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.2)
train_step = slim.learning.create_train_op(cross_entropy, optimizer, global_step=step)
 
update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
if update_ops:
print("BN parameters: ", update_ops)
updates = tf.group(*update_ops)

train_step = control_flow_ops.with_dependencies([updates], train_step)

 

https://github.com/soloice/mnist-bn/blob/master/mnist_bn.py

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值