在分割任务中,我希望我的模型有两个输出,因为我按照原始 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] 对模型输出张量的切片不起作用。
我可以做些什么来在单个损失函数中使用模型的两个输出来实现以下内容?