keras模型上的反向传播

时间:2020-04-10 09:52:20

标签: python tensorflow keras

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

我该如何实现?我知道将tensorflow与gradient-tape和低级api-stuff一起使用可以适当地帮助我。但是有什么捷径可走,因为我的方法无法构建适当的图形,导致我没有将所有输入传递给生成器模型。

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 个答案:

没有答案