【发布时间】:2021-01-22 13:01:27
【问题描述】:
我有一个 2 分支网络,其中一个分支输出回归值,另一个分支输出分类标签。
model = Model(inputs=inputs, outputs=[output1, output2])
model.compile(loss=[my_loss_reg, my_loss_class], optimizer='adam')
我想为回归分支实现一个自定义损失函数 (my_loss_reg()),以便在回归结束时添加一部分分类损失,如下所示,
def my_loss_reg(y_true, y_pred):
loss_mse=K.mean(K.sum(K.square(y_true-y_pred)))
#loss_reg = calculate_classification_loss() # How to implement this?
final_loss = some_function(loss_mse, loss_reg) # Can calculate only if loss_reg is available
return final_loss
y_true 和 y_pred 是回归分支处的真实回归值和预测回归值。要计算分类损失,我需要真实和预测的分类标签,这在 my_loss_reg() 中不可用。
我的问题是如何计算或访问网络回归端的分类损失?同样,我想在为分类计算自定义损失函数my_loss_class()时得到分类端的回归损失。
我该怎么做?任何代码 sn-ps 都会有所帮助。我找到了this solution,但这对于最新版本的 Tensorflow 和 Keras 不再有效。
【问题讨论】:
标签: python-3.x tensorflow machine-learning keras loss-function