给定经过训练的生成器模型,如何使用 GANS 创建新的假图像?
How to create new fake image using GANS given the trained generator model?
我正在编写本教程:https://colab.research.google.com/github/jeffheaton/t81_558_deep_learning/blob/master/t81_558_class_07_2_Keras_gan.ipynb#scrollTo=1yqlUD4sdiDk,我在其中尝试训练包含生成器和鉴别器模型的 GAN。这是我的第一个 GAN 项目,所以我对这一切都是陌生的。
我能够从头到尾运行这段代码,但不知何故我在两个方面不清楚:
- 有两个具有以下代码的内核,我不确定这段代码实际上在做什么。我希望有人能解释一下。
- 如何在给定训练好的生成器模型的情况下实际生成新的假图像?我不确定本教程是否正在这样做,或者我是否误解了它实际上正在完成。希望有大侠指点一下。
GAN 的生成器部分吸收噪声并生成新的假图像,这就是第一部分第 2 行和第 3 行发生的事情,然后显示您拥有的图像 plt.imshow(generated_image[0, :, :, 0])
您拥有的第二部分是鉴别器,用于尝试将生成的图像分类为真图像或假图像,这有助于生成器生成更好的假图像。
Google Colab notebook 开头的图片旨在解释 GAN 背后的主要思想和第 1 个问题中代码的第一部分
GAN 使用两个神经网络(鉴别器和生成器)一起训练。生成器将随机噪声(或图像中的随机种子)转换为视觉表示(在这种情况下,通常 GAN 可用于生成其他类型的数据)。 Discriminator 仅在训练中使用,作为一种控制来告诉 Generator 它在将 Random Seed 转换为您尝试模拟的数据(在本例中为人脸)的令人信服的模拟方面做得如何。为此,您还需要同时训练 Discriminator 以使其更好地检测模拟数据(一开始检测模拟数据可能相对容易),但是由于您只对模型完成训练后生成新数据感兴趣,因此训练后部分未使用。
您的 1. 代码的第一部分旨在显示未经训练的生成器
输出(输入是随机种子,输出是不连贯的图像)。
你的 1. 代码的第二部分是为了显示一个未经训练的人
鉴别器输出(使用生成的图像作为输入,它输出它是真实图像而不是模拟图像的概率)。
对于你问题的第二部分,你只需要进一步遵循这个逻辑。一旦经过训练,您就不需要鉴别器(因为您对生成新数据感兴趣,并且不需要鉴别器来告诉您它是否真实)。因此,您只需将新的随机种子(与他们在教程中用于训练模型的随机种子的形状相同)输入生成器,它应该会输出生成的图像。
我正在编写本教程:https://colab.research.google.com/github/jeffheaton/t81_558_deep_learning/blob/master/t81_558_class_07_2_Keras_gan.ipynb#scrollTo=1yqlUD4sdiDk,我在其中尝试训练包含生成器和鉴别器模型的 GAN。这是我的第一个 GAN 项目,所以我对这一切都是陌生的。
我能够从头到尾运行这段代码,但不知何故我在两个方面不清楚:
- 有两个具有以下代码的内核,我不确定这段代码实际上在做什么。我希望有人能解释一下。
- 如何在给定训练好的生成器模型的情况下实际生成新的假图像?我不确定本教程是否正在这样做,或者我是否误解了它实际上正在完成。希望有大侠指点一下。
GAN 的生成器部分吸收噪声并生成新的假图像,这就是第一部分第 2 行和第 3 行发生的事情,然后显示您拥有的图像 plt.imshow(generated_image[0, :, :, 0])
您拥有的第二部分是鉴别器,用于尝试将生成的图像分类为真图像或假图像,这有助于生成器生成更好的假图像。
Google Colab notebook 开头的图片旨在解释 GAN 背后的主要思想和第 1 个问题中代码的第一部分
GAN 使用两个神经网络(鉴别器和生成器)一起训练。生成器将随机噪声(或图像中的随机种子)转换为视觉表示(在这种情况下,通常 GAN 可用于生成其他类型的数据)。 Discriminator 仅在训练中使用,作为一种控制来告诉 Generator 它在将 Random Seed 转换为您尝试模拟的数据(在本例中为人脸)的令人信服的模拟方面做得如何。为此,您还需要同时训练 Discriminator 以使其更好地检测模拟数据(一开始检测模拟数据可能相对容易),但是由于您只对模型完成训练后生成新数据感兴趣,因此训练后部分未使用。
您的 1. 代码的第一部分旨在显示未经训练的生成器 输出(输入是随机种子,输出是不连贯的图像)。
你的 1. 代码的第二部分是为了显示一个未经训练的人 鉴别器输出(使用生成的图像作为输入,它输出它是真实图像而不是模拟图像的概率)。
对于你问题的第二部分,你只需要进一步遵循这个逻辑。一旦经过训练,您就不需要鉴别器(因为您对生成新数据感兴趣,并且不需要鉴别器来告诉您它是否真实)。因此,您只需将新的随机种子(与他们在教程中用于训练模型的随机种子的形状相同)输入生成器,它应该会输出生成的图像。