我用keras(一个convnet)构建了一个自定义体系结构。该网络有4个头,每个头输出不同大小的张量。我试图编写一个自定义损失函数作为这4个输出的函数。我以前曾实施过客户损失,但要么是每个头损失不同,要么是每个头损失相同。在这种情况下,我需要组合4个输出来计算损耗。
我习惯以下几点:
def custom_loss(y_true, y_pred):
return something
model.compile(optimizer, loss=custom_loss)
Run Code Online (Sandbox Code Playgroud)
但就我而言,我需要y_pred列出4个输出。我可以用零填充输出,并在模型中添加一个连接层,但是我想知道是否有更简单的方法。
我的损失函数相当复杂,我可以写点什么:
model.add_loss(custom_loss(input1, input2, output1, output2))
Run Code Online (Sandbox Code Playgroud)
自定义损失定义为:
def custom_loss(input1, input2, output1, output2):
return loss
Run Code Online (Sandbox Code Playgroud)