Пользовательские метки доступа к функциям потерь - PullRequest
0 голосов
/ 09 октября 2019

Я использую Keras для обучения генеративной сети соперничества. Я хотел реализовать пользовательскую функцию потерь, которая имеет термин регуляризации в дополнение к среднеквадратичной ошибке. Код функции потерь можно записать в виде

def mean_squared_error(y_true, y_pred):
    return K.mean(K.square(y_pred - y_true), axis=-1)

В моем случае ytrain имеет два канала, а высота и ширина изображения - 256 x 256. Я думаю, что форма тензора y_pred будет [Нет, 256,256,2]. Как я могу использовать 1-й и второй канал? В частности, я хотел бы добавить термин регуляризации, который можно вычислить как

d2y_dx2 = t.gradient(t.gradient(y_pred[:,:,:,0], x), x)
d2y_dy2 = t.gradient(t.gradient(y_pred[:,:,:,0], y), y)
loss1 = d2y_dx2  + d2y_dy2  + y_pred[:,:,:,1]

Я хочу взять лапласиан первого канала и добавить его ко второму каналу изображения. Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...