Итерация в пользовательской функции потерь Keras - PullRequest
0 голосов
/ 06 апреля 2020

Я знаю, что лучше избегать l oop в Keras пользовательской функции потерь, но я думаю, что должен это сделать. Проблема заключается в следующем: я пытаюсь реализовать функцию потерь, которая вычисляет значение потерь для нескольких групп данных, а затем объединяет эти значения в уникальное значение.

Например, у меня 6 записей, поэтому в моей потере Keras у меня будет 6 y_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

Возможно ли достичь чего-то подобного ? Мне нужно обработать весь набор данных и рассчитать потери для нескольких сгустков, а затем объединить все значения сгустков в одно значение.

...