def build_discriminator_trainer(self): """ Build a Keras model for training image and mask discriminators. """ # Mask Discriminator D_Mask = Discriminator(self.conf.input_shape, output='2D', downsample_blocks=3, name='D_M') D_Mask.build() self.MaskDiscriminator = D_Mask.model real_M = Input(self.conf.input_shape) fake_M = Input(self.conf.input_shape) dis_real_M = self.MaskDiscriminator(real_M) dis_fake_M = self.MaskDiscriminator(fake_M) D_Image = Discriminator(self.conf.input_shape, output='2D', downsample_blocks=3, name='D_X') D_Image.build() self.ImageDiscriminator = D_Image.model real_X = Input(self.conf.input_shape) fake_X = Input(self.conf.input_shape) dis_real_X = self.ImageDiscriminator(real_X) dis_fake_X = self.ImageDiscriminator(fake_X) self.D_model = Model( inputs=[real_M, fake_M, real_X, fake_X], outputs=[dis_real_M, dis_fake_M, dis_real_X, dis_fake_X]) self.D_model.compile(Adam(lr=0.0001, beta_1=0.5), loss='mse') log.info('Discriminators Trainer') self.D_model.summary(print_fn=log.info)
def build_mask_discriminator(self): # Build a discriminator for masks. D = Discriminator(self.conf.d_mask_params) D.build() log.info('Mask Discriminator D_M') D.model.summary(print_fn=log.info) self.D_Mask = D.model real_M = Input(self.conf.d_mask_params.input_shape) fake_M = Input(self.conf.d_mask_params.input_shape) real = self.D_Mask(real_M) fake = self.D_Mask(fake_M) self.D_Mask_trainer = Model([real_M, fake_M], [real, fake], name='D_Mask_trainer') self.D_Mask_trainer.compile(Adam(lr=self.conf.d_mask_params.lr), loss='mse') self.D_Mask_trainer.summary(print_fn=log.info)
def build_image_discriminator2(self): """ Build a discriminator for images """ params2 = self.conf.d_image_params params2['name'] = 'D_Image2' D = Discriminator(params2) D.build() log.info('Image Discriminator D_I2') D.model.summary(print_fn=log.info) self.D_Image2 = D.model real_x = Input(self.conf.d_image_params.input_shape) fake_x = Input(self.conf.d_image_params.input_shape) real = self.D_Image2(real_x) fake = self.D_Image2(fake_x) self.D_Image2_trainer = Model([real_x, fake_x], [real, fake], name='D_Image2_trainer') self.D_Image2_trainer.compile(Adam(lr=self.conf.d_image_params.lr), loss='mse') self.D_Image2_trainer.summary(print_fn=log.info)