Exemple #1
0
 def testParallelEncoderReuse(self):
   lengths = [tf.constant([2, 5, 4], dtype=tf.int32), tf.constant([6, 6, 3], dtype=tf.int32)]
   inputs = [tf.zeros([3, 5, 10]), tf.zeros([3, 6, 10])]
   encoder = encoders.ParallelEncoder(DenseEncoder(2, 20), outputs_reducer=None)
   outputs, _, _ = encoder(inputs, sequence_length=lengths)
   outputs = self.evaluate(outputs)
   self.assertIsInstance(outputs, tuple)
   self.assertEqual(len(outputs), 2)
Exemple #2
0
 def testParallelEncoderReuse(self):
   lengths = [tf.constant([2, 5, 4], dtype=tf.int32), tf.constant([6, 6, 3], dtype=tf.int32)]
   inputs = [tf.zeros([3, 5, 10]), tf.zeros([3, 6, 10])]
   encoder = encoders.ParallelEncoder(DenseEncoder(2, 20), outputs_reducer=None)
   outputs, _, _ = encoder.encode(inputs, sequence_length=lengths)
   if not compat.is_tf2():
     with self.test_session() as sess:
       sess.run(tf.global_variables_initializer())
   outputs = self.evaluate(outputs)
   self.assertIsInstance(outputs, tuple)
   self.assertEqual(len(outputs), 2)
Exemple #3
0
 def testParallelEncoder(self):
   sequence_lengths = [[3, 5, 2], [6, 6, 4]]
   inputs = [tf.zeros([3, 5, 10]), tf.zeros([3, 6, 10])]
   encoder = encoders.ParallelEncoder(
       [DenseEncoder(1, 20), DenseEncoder(2, 20)],
       outputs_reducer=reducer.ConcatReducer(axis=1))
   outputs, state, encoded_length = encoder(
       inputs, sequence_length=sequence_lengths)
   self.assertEqual(len(state), 3)
   outputs, encoded_length = self.evaluate([outputs, encoded_length])
   self.assertAllEqual([3, 11, 20], outputs.shape)
   self.assertAllEqual([9, 11, 6], encoded_length)
Exemple #4
0
 def _encodeInParallel(self,
                       inputs,
                       sequence_length=None,
                       outputs_layer_fn=None,
                       combined_output_layer_fn=None):
   columns = [DenseEncoder(1, 20), DenseEncoder(1, 20)]
   encoder = encoders.ParallelEncoder(
       columns,
       outputs_reducer=reducer.ConcatReducer(),
       outputs_layer_fn=outputs_layer_fn,
       combined_output_layer_fn=combined_output_layer_fn)
   outputs, _, _ = encoder(inputs, sequence_length=sequence_length)
   return self.evaluate(outputs)
Exemple #5
0
 def testParallelEncoderSameInput(self):
   sequence_length = [17, 21, 20]
   inputs = _build_dummy_sequences(sequence_length)
   encoder = encoders.ParallelEncoder([
       encoders.UnidirectionalRNNEncoder(1, 20),
       encoders.UnidirectionalRNNEncoder(1, 20)],
       outputs_reducer=reducer.ConcatReducer())
   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, 21, 40], outputs.shape)
     self.assertAllEqual(sequence_length, encoded_length)
Exemple #6
0
 def _encodeInParallel(self,
                       inputs,
                       sequence_length=None,
                       outputs_layer_fn=None,
                       combined_output_layer_fn=None):
   columns = [
       encoders.UnidirectionalRNNEncoder(1, 20),
       encoders.UnidirectionalRNNEncoder(1, 20)]
   encoder = encoders.ParallelEncoder(
       columns,
       outputs_reducer=reducer.ConcatReducer(),
       outputs_layer_fn=outputs_layer_fn,
       combined_output_layer_fn=combined_output_layer_fn)
   return encoder.encode(inputs, sequence_length=sequence_length)
Exemple #7
0
 def testParallelEncoder(self):
   sequence_lengths = [[17, 21, 20], [10, 9, 15]]
   inputs = [
       _build_dummy_sequences(length) for length in sequence_lengths]
   encoder = encoders.ParallelEncoder([
       encoders.UnidirectionalRNNEncoder(1, 20),
       encoders.UnidirectionalRNNEncoder(1, 20)],
       outputs_reducer=reducer.ConcatReducer(axis=1))
   outputs, _, encoded_length = encoder.encode(
       inputs, sequence_length=sequence_lengths)
   with self.test_session() as sess:
     sess.run(tf.global_variables_initializer())
     outputs, encoded_length = sess.run([outputs, encoded_length])
     self.assertAllEqual([3, 35, 20], outputs.shape)
     self.assertAllEqual([27, 30, 35], encoded_length)
Exemple #8
0
 def testParallelEncoder(self):
   sequence_lengths = [[3, 5, 2], [6, 6, 4]]
   inputs = [tf.zeros([3, 5, 10]), tf.zeros([3, 6, 10])]
   encoder = encoders.ParallelEncoder(
       [DenseEncoder(1, 20), DenseEncoder(2, 20)],
       outputs_reducer=reducer.ConcatReducer(axis=1))
   outputs, state, encoded_length = encoder.encode(
       inputs, sequence_length=sequence_lengths)
   self.assertEqual(len(state), 3)
   if not compat.is_tf2():
     with self.test_session() as sess:
       sess.run(tf.global_variables_initializer())
   outputs, encoded_length = self.evaluate([outputs, encoded_length])
   self.assertAllEqual([3, 11, 20], outputs.shape)
   self.assertAllEqual([9, 11, 6], encoded_length)
Exemple #9
0
 def _encodeInParallel(self,
                       inputs,
                       sequence_length=None,
                       outputs_layer_fn=None,
                       combined_output_layer_fn=None):
   columns = [DenseEncoder(1, 20), DenseEncoder(1, 20)]
   encoder = encoders.ParallelEncoder(
       columns,
       outputs_reducer=reducer.ConcatReducer(),
       outputs_layer_fn=outputs_layer_fn,
       combined_output_layer_fn=combined_output_layer_fn)
   outputs, _, _ = encoder.encode(inputs, sequence_length=sequence_length)
   if not compat.is_tf2():
     with self.test_session() as sess:
       sess.run(tf.global_variables_initializer())
   return self.evaluate(outputs)