Advertisement
john99nguyen

Untitled

Apr 21st, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. class RNN(tf.keras.Model):
  2.     def __init__(self, embed_dim, hidden_dim, num_layers, vocab_dim, batch_size):
  3.         super(RNN, self).__init__()
  4.         random_init = tf.random_normal_initializer(stddev=0.1)
  5.  
  6.         self.hidden_dim = hidden_dim
  7.         self.batch_size = batch_size
  8.         self.embedding = tf.Variable(random_init(
  9.             [vocab_dim, embed_dim]), dtype=tf.float32)
  10.  
  11.         self.gru = tf.keras.layers.GRU(hidden_dim,
  12.                                    return_sequences=True, # return the hidden states
  13.                                    return_state=True)
  14.  
  15.         self.predict = tf.keras.layers.Dense(vocab_dim)
  16.  
  17.     def call(self, indices, hidden, training=True):
  18.         indices = self.get_embedding(indices)
  19.        
  20.         output, state = self.gru(indices, initial_state = hidden)
  21.        
  22.         # Context vector (batch_size, hidden_size)
  23.         context_vector, attention_weights = attention_layer(state, output)
  24.        
  25.         # What should I do here?
  26.         preds = self.predict(output)
  27.         return preds, state
  28.  
  29.     def get_embedding(self, indices):
  30.         return tf.nn.embedding_lookup(self.embedding, indices)
  31.  
  32.     def initialize_hidden_state(self):
  33.         return tf.zeros((249, self.hidden_dim))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement