reduce_mean / reduce_sum轴对训练的影响?

时间:2016-12-02 07:00:41

标签: tensorflow

在计算损失时,优化是否会以某种方式考虑计算降低的平均值或总和的轴?

例如......

X = [[.1, .2, .3, .4, .5],[.4, .3, .2, .1, .1]] # target Data
Y = [[.2, .1, .3, .2, .1],[.3, .1, .1, .3, .5]] # output data

lossA = tf.reduce_sum(tf.square(X - Y),0)
lossB = tf.reduce_sum(tf.square(X - Y),1)

errA = tf.reduce_mean(lossA)
errB = tf.reduce_mean(lossB)

A显示每个通道的样本总和,而B显示每个样本的通道总和,这会产生不同的均值误差。

lossA: [ 0.02      ,  0.05000001,  0.01      ,  0.08000001,  0.32000002]
lossB: [ 0.22000001,  0.26000002]

errA: 0.096000008
errB: 0.24000001

但是,如果要使用reduce_mean()进行损失计算,则最终平均误差相等。

lossA = tf.reduce_mean(tf.square(X - Y),0)
lossB = tf.reduce_mean(tf.square(X - Y),1)


lossA: [ 0.01      ,  0.025     ,  0.005     ,  0.04000001,  0.16000001]
lossB: [ 0.044,  0.052]

errA: 0.048000004
errB: 0.048000004

无论使用均值/和,我都在想,优化器是否会根据我指示的轴以不同的方式将误差分配给权重。或者在backprop期间根本没有考虑到这一点?

我的直觉是,通过减少沿0轴的和,优化器将更好地知道通过backprop传递更大部分误差的路径。但是我可能已经完全混淆了自己,这实际上与backprop计算无关。

0 个答案:

没有答案