Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. def get_gen_normal(noise_shape):
  2. ''' This function takes as input shape of the noise vector and creates the Keras generator architecture.
  3. '''
  4. kernel_init = 'glorot_uniform'
  5. gen_input = Input(shape = noise_shape)
  6.  
  7. # Transpose 2D conv layer 1.
  8. generator = Conv2DTranspose(filters = 512, kernel_size = (4,4), strides = (1,1), padding = "valid", data_format = "channels_last", kernel_initializer = kernel_init)(gen_input)
  9. generator = BatchNormalization(momentum = 0.5)(generator)
  10. generator = LeakyReLU(0.2)(generator)
  11.  
  12. # Transpose 2D conv layer 2.
  13. generator = Conv2DTranspose(filters = 256, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
  14. generator = BatchNormalization(momentum = 0.5)(generator)
  15. generator = LeakyReLU(0.2)(generator)
  16.  
  17. # Transpose 2D conv layer 3.
  18. generator = Conv2DTranspose(filters = 128, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
  19. generator = BatchNormalization(momentum = 0.5)(generator)
  20. generator = LeakyReLU(0.2)(generator)
  21.  
  22. # Transpose 2D conv layer 4.
  23. generator = Conv2DTranspose(filters = 64, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
  24. generator = BatchNormalization(momentum = 0.5)(generator)
  25. generator = LeakyReLU(0.2)(generator)
  26.  
  27. # conv 2D layer 1.
  28. generator = Conv2D(filters = 64, kernel_size = (3,3), strides = (1,1), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
  29. generator = BatchNormalization(momentum = 0.5)(generator)
  30. generator = LeakyReLU(0.2)(generator)
  31.  
  32. # Final Transpose 2D conv layer 5 to generate final image. Filter size 3 for 3 image channel
  33. generator = Conv2DTranspose(filters = 3, kernel_size = (4,4), strides = (2,2), padding = "same", data_format = "channels_last", kernel_initializer = kernel_init)(generator)
  34.  
  35. # Tanh activation to get final normalized image
  36. generator = Activation('tanh')(generator)
  37.  
  38. # defining the optimizer and compiling the generator model.
  39. gen_opt = Adam(lr=0.00015, beta_1=0.5)
  40. generator_model = Model(input = gen_input, output = generator)
  41. generator_model.compile(loss='binary_crossentropy', optimizer=gen_opt, metrics=['accuracy'])
  42. generator_model.summary()
  43. return generator_model
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement