Я использую 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]
Я хочу взять лапласиан первого канала и добавить его ко второму каналу изображения. Спасибо за помощь.