【发布时间】:2018-08-27 06:21:36
【问题描述】:
我在使用 Tensorflow 和 keras 时遇到问题。这个问题我们可以这样解释:
我们有一个模型(卷积神经网络),其输出形式为[None, 7, 7, 6]。我们有一个函数'custom_loss'。这个函数有 y_true 和 y_pred 参数。它们的形式为[7,7,6]。当我编译它时,我收到错误消息:TypeError: must be real number, not Tensor。我想当我打电话给y_pred[k][l][m] 和y_true[k][l][m] 时有错误,但我不知道如何解决这个问题以在[None, 7, 7, 6] 中包含这个None。请帮忙。
更新:这是代码
def custom_loss(y_true, y_pred):
loss = 0
for i in range(S*S):
k, l = i%S, i//S
first_part = 5* sum([(y_pred[k][l][m] - y_true[k][l][m])**2 for m in range(1,3)])
second_part = 5 * sum([(math.sqrt(y_pred[k][l][m]) - math.sqrt(y_true[k][l][m])) ** 2 for m in range(3, 5)])
third_part = 5* sum([(y_pred[k][l][m] - y_true[k][l][m])**2 for m in [0, 5]])
if y_true[k][l][0] > 0.5:
loss += first_part + second_part + third_part
else:
loss += 0.5 * (y_pred[k][l][0] - y_true[k][l][0])**2
return loss
【问题讨论】:
-
请添加您的代码以重现此错误。
标签: tensorflow keras loss-function