Как я могу вычислить потерю генератора извне перед вычислением окончательной потери? - PullRequest
0 голосов
/ 10 апреля 2020

Давайте предположим, что я хотел бы обучить генеративную сеть. Эта сеть должна распространяться в обратном направлении на основе двух функций потерь. Второй (input_XB) - это потеря преобразования изображения (A -> A'), только с использованием MSE. Первая потеря должна быть чем-то другим, например, в случае, если это расстояние канала Hue HSV между двумя изображениями (разница A (Hue) / A '(Hue)), или что-то совершенно другое. Разница в том, что мне потребуется внешняя предварительная обработка выходного сигнала генератора (g_model_1), например, с помощью OpenCV, прежде чем вычислять потери.

Как мне этого добиться? Я думаю, что использование TensorFlow с градиентной лентой и низкоуровневыми API-интерфейсами может помочь мне в этом. Но есть ли какая-либо комбинация, потому что мой подход не создает правильный граф, потому что я не передаю все входные данные по модели генератора.

def define_composite_model_B(g_model_1, image_shape,image_shape2):

  g_model_1.trainable = True

  # discriminator outsorced
  input_A = Input(shape=image_shape2)


  # transformation loss
  input_XB = Input(shape=image_shape)
  B_fake=g_model_1(input_XB)


  model = Model([input_A,input_XB],[input_A,B_fake])

  opt = Adam(lr=0.0002, beta_1=0.5)

  model.compile(loss=['binary_crossentropy','mse'], optimizer=opt)
  model.summary()
  return model
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...