【发布时间】:2019-05-31 23:44:40
【问题描述】:
我想将目标函数中的感知损失添加到 MSE 损失中。我为此编写了以下代码:
def custom_objective(y_true, y_pred):
tosub = K.constant([103.939, 116.779, 123.68])
y1 = vgg_model(y_pred * 255. - tosub)
y2 = vgg_model(y_true * 255. - tosub)
loss2 = K.mean(K.square(y2 - y1), axis=-1)
loss1 = K.mean(K.square(y_pred - y_true), axis=-1)
loss = loss1 + loss2
return loss
问题是loss1 的形状类似于(BatchSize, 224, 224),但loss2 的形状是(BatchSize, 7, 7),所以它给了我关于不兼容形状的错误,这是正确的。我想知道如何正确添加这两个?我应该先解开吗?以及如何?
【问题讨论】:
标签: machine-learning keras deep-learning conv-neural-network loss-function