我有一个具有多个输出的模型,如:
model_in = Input((None, None, 3))
out_1 = Dense(10)(model_in)
out_2 = Dense(20)(model_in)
model = keras.Model(model_in, [out_1, out_2])
model.compile('adam', loss = [loss_fn_1, loss_fn_2])
对于每个训练样本,我都有一个掩码,应该在我的自定义损失函数中使用(实际上,我的数据生成器根据输入样本生成这个掩码(。因此,对于每个样本,我都有一个输入、两个输出和一个应该在损失函数中使用的掩码。我的问题是,我应该如何将掩码传递给适当的损失函数(我对每个输出使用不同的损失函数(?
您的loss函数有三个参数,因此它不能与kerascompile()
、fit()
一起使用(https://keras.io/api/losses/)。
你有两个选择:
- 创建自定义循环或
- 创建一个自定义图层并使用
add_loss()