Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. p = np.random.permutation(len(input_data))
  2. input_data = input_data[p]
  3. teacher_data = teacher_data[p]
  4. target_data = target_data[p]
  5. BUFFER_SIZE = len(input_data)
  6. BATCH_SIZE = 64
  7. embedding_dim = 100
  8. units = 256
  9. vocab_in_size = len(input_lang.word2idx)
  10. vocab_out_size = len(target_lang.word2idx)
  11.  
  12. # Create the Encoder layers first.
  13.  
  14. encoder_inputs = Input(shape=(len_input,))
  15. encoder_emb = Embedding(input_dim=vocab_in_size, output_dim=embedding_dim)
  16. encoder_lstm =LSTM(units=units, return_sequences=True, return_state=True)
  17. encoder_outputs, state_h, state_c =
  18. encoder_lstm(encoder_emb(encoder_inputs))
  19. encoder_states = [state_h, state_c]
  20.  
  21. #################### Adding VAE #######################
  22.  
  23. latent_dim =256
  24. # output layer for mean and log variance
  25. z_mu = Dense(latent_dim)(encoder_outputs) #remplacer h
  26. z_log_var = Dense(latent_dim)(encoder_outputs)
  27. def sampling(args):
  28. batch_size=1
  29. z_mean, z_log_sigma = args
  30. epsilon = K.random_normal(shape=(batch_size, latent_dim),
  31. mean=0., stddev=1.)
  32. return z_mean + K.exp(z_log_sigma) * epsilon
  33.  
  34. z = Lambda(sampling, output_shape=(latent_dim,))([z_mu, z_log_var])
  35. state_h= z
  36. state_c = z
  37. encoder_states = [state_h, state_c]
  38.  
  39. def vae_loss(y_true, y_pred):
  40.  
  41. recon = K.sum(K.binary_crossentropy(y_pred, y_true), axis=-1)
  42. kl = 0.5 * K.sum(K.exp(z_log_var) + K.square(z_mu) - 1. - z_log_var,
  43. axis=-1)
  44. return recon + kl[:, None]
  45.  
  46. ##########################
  47.  
  48. # Now create the Decoder layers.
  49. decoder_inputs = Input(shape=(None,))
  50. decoder_emb = Embedding(input_dim=vocab_out_size, output_dim=embedding_dim)
  51. decoder_lstm = LSTM(units=units, return_sequences=True, return_state=True)
  52. decoder_lstm_out, _, _ = decoder_lstm(decoder_emb(decoder_inputs),
  53. initial_state=encoder_states)
  54.  
  55. # Attention layer
  56. attn_layer = AttentionLayer(name='attention_layer')
  57. attn_out, attn_states = attn_layer([encoder_outputs, decoder_lstm_out])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement