Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- train_images = train_images.reshape(train_images.shape[0], 28, 28, 1).astype('float32')
- train_images = (train_images - 127.5) / 127.5 # Normalize the images to [-1, 1]
- 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) # Note: None is the batch size
- 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
- def 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
- # Padding==Same:
- H = H1 * stride
- # Padding==Valid
- H = (H1-1) * stride + HF
- (None, h1, h2, channels)
- ||
- Conv2DTranspose(num_filters, (kernel_h1, kernel_h2), strides=(s1, s2), padding='same')
- ||
- (None, h1*s1, h2*s2, num_filters)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement