[英]Optimize sparse softmax cross entropy with L2 regularization
我正在使用tf.losses.sparse_softmax_cross_entropy
作为最后一层的分类函数来训练我的网络,并且一切工作正常。
我现在只是在权重上添加了L2正则化,并且损失不再得到优化。 会发生什么事?
reg = tf.nn.l2_loss(w1) + tf.nn.l2_loss(w2)
loss = tf.reduce_mean(tf.losses.sparse_softmax_cross_entropy(y, logits)) + reg*beta
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss)
给定提供的信息,很难确定答案,但这是可能的原因:
tf.nn.l2_loss
计算为元素上的总和,而交叉熵损失减少到其均值(cf tf.reduce_mean
),因此这两个项之间存在数值不平衡。
例如,尝试将每个L2损耗除以计算tf.size(w1)
的元素数量(例如tf.size(w1)
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.