根据Keras Code,Keras会考虑可选的权重和掩码来计算损耗值。
for i in range(len(self.outputs)):
if i in skip_target_indices:
continue
y_true = self.targets[i]
y_pred = self.outputs[i]
weighted_loss = weighted_losses[i]
sample_weight = sample_weights[i]
mask = masks[i]
loss_weight = loss_weights_list[i]
with K.name_scope(self.output_names[i] + '_loss'):
output_loss = weighted_loss(y_true, y_pred,
sample_weight, mask)
if len(self.outputs) > 1:
self.metrics_tensors.append(output_loss)
self.metrics_names.append(self.output_names[i] + '_loss')
if total_loss is None:
total_loss = loss_weight * output_loss
else:
total_loss += loss_weight * output_loss
另一方面,在Keras documentation中,我看到基本损失函数是在编译函数中引入的,然后样本或类权重可以在fit命令中引入。 我不确定如何将第一个代码中的“权重和掩码”与第二个文档中的“采样和类权重”相关联。有人可以给我更多解释吗?
我的应用程序实际上是一个卷积LSTM网络,我在其中输入了一系列图像,并希望该网络生成像素类的输出图(输入图的大小相同),但是某些像素没有有效的标签在训练中。我应该使用重量或口罩,样品还是课堂?