在计算最终损失之前,如何在外部计算发生器的损失?

时间:2020-04-10 10:38:16

标签: tensorflow python keras

让我们假设我想训练一个生成网络。该网络应基于两个损耗函数进行反向传播。第二个(input_XB)是仅使用MSE的图像(A -> A')的变换损失。例如,如果是两个图像之间HSV色相通道的距离(差值A(色相)/ A'(色相))或完全不同,则第一个损失应该是其他损失。在计算损失之前,我需要使用OpenCV对生成器(g_model_1)输出进行外部预处理。

我该如何实现?我认为将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

0 个答案:

没有答案