【发布时间】:2021-04-05 07:10:23
【问题描述】:
在我的模型中,我使用 tf.keras.losses.MSE 来计算我的 BATCH_SIZE x 256 x 256 x 3 输出和我的BATCH_SIZE x 256 x 256 x 3 输入。
这个函数的输出似乎是(None,256,256)。
然后我使用 tf.GradientTape.gradients,将 MSE output 作为“target”属性。在文档中,它说这个属性可以是张量。
我的理解是 loss 是一个标量数,它在反向传播期间与每个权重不同。
因此,我的问题是:将多维张量传递给梯度函数时会发生什么?张量中所有元素的总和是否简单计算?
我问这个是因为我的模型目前没有训练,每个时期的损失读数都是 1.0。我的假设是我没有正确计算梯度,因为每个权重的所有梯度都读取为 0.0。
【问题讨论】:
-
您需要将每像素损失减少到一个标量。使用
tf.math.reduce_mean
标签: tensorflow keras