Как контролировать, какая цифра генерируется из GAN, обученного в MNIST? - PullRequest
1 голос
/ 14 июня 2019

Меня интересует GAN, поэтому я пошел по этому уроку ссылка о GAN для MNIST с Keras.В результате было сгенерировано изображение 4х4 со случайной цифрой, например 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)

1 Ответ

0 голосов
/ 15 июня 2019

Тип используемого GAN не имеет никакого способа контролировать, какое число он генерирует. Для этого вам нужно обучить условную GAN .

Единственное, что означает, что вы должны контролировать , какие изображения генерирует GAN, через вектор шума , который вы вводите в генератор. Вы можете изменить значения этого вектора, пока не получите нужную цифру.

Самый простой способ сделать это - через случайное начальное число

np.random.seed(13)  # changing this number will result in different digits being created
noise = np.random.normal(0, 1, size=[examples, random_dim])
generated_images = generator.predict(noise)
generated_images = generated_images.reshape(examples, 28, 28)
...