Жаккар Лосс в Керасе возвращает 3D-тензор - PullRequest
0 голосов
/ 23 июня 2019

Я имею в виду функцию потери Жакара, упомянутую в этой записи . Tensorflow используется как бэкэнд для Keras. Изображения для обучения в следующем формате (партия, высота, ширина, глубина). Согласно коду, функция потерь возвращает тензор (пакет * высота * ширина) при суммировании по оси = -1, что в моем случае является глубиной. Мой вопрос, работает ли обратное распространение, когда возвращенная потеря в формате 3D-тензора? Или Керас знает, как с этим справиться? Ниже я использую функцию потерь. Пожалуйста, дайте мне знать, если мой вопрос не ясен.

from keras import backend as K
def jaccard_distance(y_true, y_pred, smooth=100):
    intersection = K.sum(K.abs(y_true * y_pred), axis=-1)
    sum_ = K.sum(K.abs(y_true) + K.abs(y_pred), axis=-1)
    jac = (intersection + smooth) / (sum_ - intersection + smooth)
    return (1 - jac) * smooth
...