def make_discriminator(self):
# TODO just to have something, 5 layers vgg-like
inputs = Input(shape=self.img_shape)
enc1 = self.downsampling_block_basic(inputs, 64, 7)
enc2 = self.downsampling_block_basic(enc1, 64, 7)
enc3 = self.downsampling_block_basic(enc2, 92, 7)
enc4 = self.downsampling_block_basic(enc3, 128, 7)
enc5 = self.downsampling_block_basic(enc4, 128, 7)
flat = Flatten()(enc5)
dense1 = Dense(512, activation='sigmoid')(flat)
dense2 = Dense(512, activation='sigmoid')(dense1)
fake = Dense(1, activation='sigmoid', name='generation')(dense2)
# Dense(2,... two classes : real and fake
# change last activation to softmax ?
discriminator = kmodels.Model(input=inputs, output=fake)
lr = 1e-04
optimizer = RMSprop(lr=lr, rho=0.9, epsilon=1e-8, clipnorm=10)
print (' Optimizer discriminator: rmsprop. Lr: {}. Rho: 0.9, epsilon=1e-8, '
'clipnorm=10'.format(lr))
discriminator.compile(loss='binary_crossentropy', optimizer=optimizer)
# TODO metrics=metrics,
return discriminator
评论列表
文章目录