具有多个输出模型的 Keras 自定义损失函数

时间:2021-01-16 18:54:46

标签: tensorflow keras conv-neural-network loss-function

在分割任务中,我希望我的模型有两个输出,因为我按照原始 U-net 论文 https://arxiv.org/pdf/1505.04597.pdf 中的建议实现了权重图。

根据建议,我创建了权重图,集中了一些地面实况掩码以获得更高的权重。现在我有了一个模型。

weightmap=layers.Lambda(lambda x:x)(weight_map) # A non trainable layer to output this as tensor for loss function
Model=model(inputs=[input,weight_map], outputs=[output,weightmap]

现在我需要计算以下模型的二元交叉熵损失

def custom_loss(target,outputs):
    loss=K.binary_crossentropy(target,outputs[0]) #ouputs[0] should be the model output
    loss=loss*outputs[1] #outputs[1] should be weightmaps 
    return loss 

此输出 [0] 和输出 [1] 对模型输出张量的切片不起作用。

我可以做些什么来在单个损失函数中使用模型的两个输出来实现以下内容?

0 个答案:

没有答案