GAN
学習内容
GAN
特定の画像を模して生成された生成器と、生成された画像が元の画像であるか否かを判別する識別器とからなる.generatorは、自分が生成した画像を識別するために、画像生成を学習し、ソース画像をよりよく識別できるように学習する構成である.
訓練の過程で、ジェネレータは次第に真実の画像をよりよく生成し、Descriptorは次第に真偽をよりよく区別する.このプロセスは、設計者が偽画像の実際の画像を区別しなくなったときに、バランス状態に達する.
Deep Convolutional GAN(DCGAN)
generator
def make_generator_model():
model = tf.keras.Sequential()
model.add(layers.Dense(7*7*256, use_bias=False, input_shape=(100,)))
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Reshape((7, 7, 256)))
assert model.output_shape == (None, 7, 7, 256) # 주목: 배치사이즈로 None이 주어집니다.
model.add(layers.Conv2DTranspose(128, (5, 5), strides=(1, 1), padding='same', use_bias=False))
assert model.output_shape == (None, 7, 7, 128)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(64, (5, 5), strides=(2, 2), padding='same', use_bias=False))
assert model.output_shape == (None, 14, 14, 64)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(1, (5, 5), strides=(2, 2), padding='same', use_bias=False, activation='tanh'))
assert model.output_shape == (None, 28, 28, 1)
return model
未学習ジェネレータによる画像生成generator = make_generator_model()
noise = tf.random.normal([1, 100])
generated_image = generator(noise, training=False)
plt.imshow(generated_image[0, :, :, 0], cmap='gray')
discriminatordef make_discriminator_model():
model = tf.keras.Sequential()
model.add(layers.Conv2D(64, (5, 5), strides=(2, 2), padding='same',
input_shape=[28, 28, 1]))
model.add(layers.LeakyReLU())
model.add(layers.Dropout(0.3))
model.add(layers.Conv2D(128, (5, 5), strides=(2, 2), padding='same'))
model.add(layers.LeakyReLU())
model.add(layers.Dropout(0.3))
model.add(layers.Flatten())
model.add(layers.Dense(1))
return model
未学習の判別器を用いて生成した画像を判別するモデルは真画像出力正値(正値)、偽画像出力負値(負値)
discriminator = make_discriminator_model()
decision = discriminator(generated_image)
print (decision)
Reference
https://sensibilityit.tistory.com/506
Reference
この問題について(GAN), 我々は、より多くの情報をここで見つけました https://velog.io/@tjddyd1592/625-GANテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol