对抗网络将生成器和判别器组合在一起,如图7-6所示。生成器噪声向量解码为图像,判别器对这些图像的真实性进行鉴别,生成器试图欺骗判别器,同时从其评判反馈中提升自己。
图7-6 对抗网络组成
def__init__(self):
self. img_rows=28
self. img_cols=28
self. channels=1
self. img_shape=(self.img_rows, self.img_cols, self.channels)
optimizer=Adam(0.0002,0.5)
#构建和编译判别器
self. discriminator=self.build_discriminator()
self. discriminator.compile(loss='binary_crossentropy',
optimizer=optimizer,
metrics=['accuracy'])
#构建和编译生成器(www.xing528.com)
self. generator=self.build_generator()
self. generator.compile(loss='binary_crossentropy',optimizer=optimi-zer)
#生成器将噪声作为输入并生成图片
z=Input(shape=(100,))
img=self.generator(z)
#对于组合模型,只训练生成器
self. discriminator.trainable=False
#判别器将生成的图像作为输入并确定其有效性
valid=self.discriminator(img)
#组合生成器和判别器
self. combined=Model(z, valid)
self. combined.compile(loss='binary_crossentropy',optimizer=optimi-zer)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。