gpt4 book ai didi

python - 如何控制在 MNIST 中训练的 GAN 生成哪个数字?

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:02 25 4
gpt4 key购买 nike

我对 GAN 感兴趣,所以我遵循了本教程 link关于 MNIST 和 Keras 的 GAN。结果是它生成了一个带有随机数字的 4x4 图像,如 this 。我想问如何生成带有我想要的数字的 4x4 图像,而不是像 this 这样的随机数字.

def plot_generated_images(epoch, generator, examples=16, dim=(4, 4), figsize=(4, 4)):
noise = np.random.normal(0, 1, size=[examples, random_dim])
generated_images = generator.predict(noise)
generated_images = generated_images.reshape(examples, 28, 28)

plt.figure(figsize=figsize)

for i in range(generated_images.shape[0]):
plt.subplot(dim[0], dim[1], i+1)
plt.imshow(generated_images[i], interpolation='nearest', cmap='gray_r')
plt.axis('off')

plt.tight_layout()
plt.savefig('gan_generated_image_epoch_%d.png' % epoch)

最佳答案

另一种方法是过滤训练数据,例如

from tensorflow.keras.datasets import mnist

# Set specific target digit you want to generator
TARGET_DIGIT = 5

# Get data
(trainX, trainy), (testX, testy) = mnist.load_data()

# Filter it
trainX, trainy = trainX[trainy==TARGET_DIGIT], trainy[trainy==TARGET_DIGIT]

然后根据过滤后的数据和噪声训练 GAN 模型。因为鉴别器只是区分真假,所以如果只使用特定的数字标签来训练应该没问题。

通过对每个数字重复 10 次,您可以生成您想要的数字。但请记住,训练数据大小减少了,epoch 需要同时增加。

我尝试通过给定基本 GAN 架构的 epochs = 300batch size = 128 将目标数字设置为 5。这是 epoch=150 时的生成器图:digit 5, epoch 150 ;纪元=300:digit 5, epoch 300

关于python - 如何控制在 MNIST 中训练的 GAN 生成哪个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56604219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com