我想为keras创建一个自定义损失函数,它应该使用模型的输入X(numpy数组)和模型的y_pred来计算损失。我用过这个:
def customloss(x):
def loss(x,y_pred):
_img_based_on_pred = make_an_image_with_respect_to(y_pred)
return distance(x,_img_basedon_pred)
return loss
并传递如下参数:
_gen.compile(loss=[customloss(inputs)],optimizer='SGD',metrics=['accuracy'])
Keras会将inputs
发送给自定义损失以及y_pred,但loss
make_an_image_respect_to
重新发送y_pred
,它就像Tensor一样,我无法读取它。模型输出必须是一些浮点数,这是make_an_image_respect_to
所需要的。
我该怎么办?要将输入样本和y_pred发送到自定义丢失函数吗?
PS: 我正在制作一个模型来从图像中提取一些参数。我想发回(丢失)输入图像和由模型估计的参数(使用函数)产生的图像之间的差异(距离函数)。