我知道最好避免Keras自定义损失函数中的循环,但我认为我必须这样做。问题如下:我正在尝试实现一个损失函数,该函数计算多组数据的损失值,然后将这些值聚合为一个唯一值。
例如,我有 6 个数据条目,所以在我的Keras损失中,我将有 6y_true和 6 y_pred。我想计算 2 个损失值:一个用于前 3 个元素,一个用于最后 3 个元素。
假设代码示例:
def custom_loss(y_true, y_pred):
start_range = 0
losses = []
for index in range(0,2):
end_range = start_range + 3
y_true_bunch = y_true[start_range:end_range]
y_pred_bunch = y_pred[start_range:end_range]
loss_value = ...some processing on bunches...
losses.append(loss_value)
start_range = end_range
final_loss = ...aggregate loss_value...
return final_loss
有可能实现这样的目标吗?我需要处理整个数据集并计算多个束的损失,然后将所有束值聚合为一个值。