Example #1
0
 def testPyramidalEncoderShortSequences(self):
     sequence_length = [3, 4, 2]
     inputs = tf.zeros([3, 4, 5])
     encoder = encoders.PyramidalRNNEncoder(3, 10, reduction_factor=2)
     outputs, state, encoded_length = encoder(
         inputs, sequence_length=sequence_length)
     encoded_length = self.evaluate(encoded_length)
     self.assertAllEqual([1, 1, 1], encoded_length)
Example #2
0
 def testPyramidalEncoderShortSequences(self):
     sequence_length = [3, 4, 2]
     inputs = _build_dummy_sequences(sequence_length)
     encoder = encoders.PyramidalRNNEncoder(3, 10, reduction_factor=2)
     outputs, state, encoded_length = encoder.encode(
         inputs, sequence_length=sequence_length)
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         encoded_length = sess.run(encoded_length)
         self.assertAllEqual([1, 1, 1], encoded_length)
Example #3
0
 def testPyramidalEncoder(self):
     sequence_length = [17, 21, 20]
     inputs = tf.zeros([3, 21, 5])
     encoder = encoders.PyramidalRNNEncoder(3, 10, reduction_factor=2)
     outputs, state, encoded_length = encoder(
         inputs, sequence_length=sequence_length)
     self.assertEqual(3, len(state))
     outputs, encoded_length = self.evaluate([outputs, encoded_length])
     self.assertAllEqual([3, 6, 10], outputs.shape)
     self.assertAllEqual([4, 5, 5], encoded_length)
Example #4
0
 def testPyramidalEncoder(self):
   sequence_length = [17, 21, 20]
   inputs = _build_dummy_sequences(sequence_length)
   encoder = encoders.PyramidalRNNEncoder(3, 10, reduction_factor=2)
   outputs, _, encoded_length = encoder.encode(
       inputs, sequence_length=sequence_length)
   with self.test_session() as sess:
     sess.run(tf.global_variables_initializer())
     outputs, encoded_length = sess.run([outputs, encoded_length])
     self.assertAllEqual([3, 6, 10], outputs.shape)
     self.assertAllEqual([4, 5, 5], encoded_length)
Example #5
0
 def testSequentialEncoder(self):
   sequence_length = [17, 21, 20]
   inputs = _build_dummy_sequences(sequence_length)
   encoder = encoders.SequentialEncoder([
       encoders.UnidirectionalRNNEncoder(1, 20),
       encoders.PyramidalRNNEncoder(3, 10, reduction_factor=2)])
   _, _, encoded_length = encoder.encode(
       inputs, sequence_length=sequence_length)
   with self.test_session() as sess:
     sess.run(tf.global_variables_initializer())
     encoded_length = sess.run(encoded_length)
     self.assertAllEqual([4, 5, 5], encoded_length)
Example #6
0
 def testPyramidalEncoder(self):
     sequence_length = [17, 21, 20]
     inputs = _build_dummy_sequences(sequence_length)
     encoder = encoders.PyramidalRNNEncoder(3, 10, reduction_factor=2)
     outputs, state, encoded_length = encoder.encode(
         inputs, sequence_length=sequence_length)
     self.assertEqual(3, len(state))
     for s in state:
         self.assertIsInstance(s, tf.nn.rnn_cell.LSTMStateTuple)
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         outputs, encoded_length = sess.run([outputs, encoded_length])
         self.assertAllEqual([3, 6, 10], outputs.shape)
         self.assertAllEqual([4, 5, 5], encoded_length)
Example #7
0
 def testSequentialEncoder(self):
     sequence_length = [17, 21, 20]
     inputs = _build_dummy_sequences(sequence_length)
     encoder = encoders.SequentialEncoder([
         encoders.UnidirectionalRNNEncoder(1, 20),
         encoders.PyramidalRNNEncoder(3, 10, reduction_factor=2)
     ])
     _, state, encoded_length = encoder.encode(
         inputs, sequence_length=sequence_length)
     self.assertEqual(4, len(state))
     for s in state:
         self.assertIsInstance(s, tf.contrib.rnn.LSTMStateTuple)
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         encoded_length = sess.run(encoded_length)
         self.assertAllEqual([4, 5, 5], encoded_length)
Example #8
0
 def __init__(self):
     super(ListenAttendSpell, self).__init__(
         source_inputter=inputters.SequenceRecordInputter(input_depth=40),
         target_inputter=inputters.WordEmbedder(embedding_size=50),
         encoder=encoders.PyramidalRNNEncoder(
             num_layers=3,
             num_units=512,
             reduction_factor=2,
             cell_class=tf.keras.layers.LSTMCell,
             dropout=0.3),
         decoder=decoders.AttentionalRNNDecoder(
             num_layers=3,
             num_units=512,
             attention_mechanism_class=tfa.seq2seq.LuongMonotonicAttention,
             cell_class=tf.keras.layers.LSTMCell,
             dropout=0.3,
             residual_connections=False,
             first_layer_attention=True))