Я хочу создать пользовательскую функцию потерь для керас, которая должна рассчитывать потери, используя входные данные X модели (массив numpy) и y_pred модели. Я использовал это:
def customloss(x):
def loss(x,y_pred):
_img_based_on_pred = make_an_image_with_respect_to(y_pred)
return distance(x,_img_basedon_pred)
return loss
и передайте параметры следующим образом:
_gen.compile(loss=[customloss(inputs)],optimizer='SGD',metrics=['accuracy'])
Керас отправит inputs
в customloss, а также y_pred, но в loss
make_an_image_respect_to
получает y_pred
, это как Тензор, и я не могу его прочитать. Выходные данные модели должны быть числами с плавающей запятой, и это то, что мне нужно make_an_image_respect_to
.
Как мне сделать такую вещь? Чтобы отправить и входной сэмпл, и y_pred в пользовательскую функцию потерь?
Ps:
Я делаю модель для извлечения некоторых параметров из изображения. Я хочу отправить обратно (потерю) разницу (функцию расстояния) между входным изображением и изображением, полученным по параметрам, оцененным моделью (используя функцию).