如何解决Tensorflow 2.1在GAN训练期间显示出奇怪的行为,同时在训练过程中对判别器进行评估
我正在自定义图像数据集上训练GAN。我在tensorflow(2.1)鉴别器训练过程中遇到一个奇怪的问题。当我调用评估和训练方法时,产生的度量结果是不同的。谁能让我知道为什么会有很大的不同。我认为model.evaluate结果是正确的结果。
discriminator.train_on_batch(generated_images,zeros)
输出:损失:0.3693015,准确性:1.0
discriminator.evaluate(generated_images,zeros)
输出:损失:0.9416157603263855,准确性:0.0
discriminator.predict(generated_images)
outputs: array([[0.9242853 ],[0.9242752 ],[0.92427176],[0.92424864],[0.9242797 ],[0.9242201 ],[0.92427665],[0.9242958 ],[0.9242941 ],[0.9243046 ],[0.9242498 ],[0.92428845],[0.92429376],[0.9242994 ],[0.92427266],[0.9242796 ],[0.92427236],[0.924284 ],[0.9242925 ]],dtype=float32)
由于我的真实标签全为零,因此我认为0.9 **的概率应归类为标签1,因此准确度应为0%,这是通过model.evaluate()方法正确返回的,但是我的训练却全错了因为fit和train_on_batch方法返回的准确度为100%,损失接近0。
下面是我的GAN编译代码-
ones = np.ones(batch_size)
zeros = np.zeros(batch_size)
generator = build_generator(dims=latent_dim)
print("-------- Generator Summary --------")
generator.summary()
Build & compile discriminator model
discriminator = build_discriminator (image_size=image_size)
discriminator.compile(loss='binary_crossentropy',optimizer=Adam(0.0002,0.5),metrics=['accuracy'])
print("\n\n-------- Discriminator Summary --------")
discriminator.summary()
#Build & compile GAN (combined) model
gan = build_gan(generator,discriminator,dims=latent_dim)
gan.compile(loss='binary_crossentropy',metrics=['accuracy'])
print("\n\n-------- GAN Summary --------")
gan.summary()
任何帮助将不胜感激。 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。