def setUp(self): super().setUp() self.encoder = ComposeEncoder([ _make_feedforward(9, 5), _make_feedforward(5, 10), _make_feedforward(10, 3) ])
class TestPassThroughEncoder(AllenNlpTestCase): def setUp(self): super().setUp() self.encoder = ComposeEncoder([ _make_feedforward(9, 5), _make_feedforward(5, 10), _make_feedforward(10, 3) ]) def test_get_dimension_is_correct(self): assert self.encoder.get_input_dim() == 9 assert self.encoder.get_output_dim() == 3 def test_composes(self): tensor = torch.zeros(2, 10, 9) output = self.encoder(tensor) for encoder in self.encoder.encoders: tensor = encoder(tensor) numpy.testing.assert_array_almost_equal(output.detach().cpu().numpy(), tensor.detach().cpu().numpy()) def test_pass_through_encoder_with_mask(self): tensor = torch.randn([2, 3, 9]) mask = torch.LongTensor([[1, 1, 1], [1, 0, 0]]) output = self.encoder(tensor, mask) for encoder in self.encoder.encoders: tensor = encoder(tensor, mask) numpy.testing.assert_array_almost_equal(output.detach().cpu().numpy(), tensor.detach().cpu().numpy()) def test_empty(self): with self.assertRaises(ValueError): ComposeEncoder([]) def test_mismatched_size(self): with self.assertRaises(ValueError): ComposeEncoder([ MockSeq2SeqEncoder(input_dim=9, output_dim=5), MockSeq2SeqEncoder(input_dim=1, output_dim=2), ]) def test_mismatched_bidirectionality(self): with self.assertRaises(ValueError): ComposeEncoder([ MockSeq2SeqEncoder(input_dim=9, output_dim=5), MockSeq2SeqEncoder(input_dim=5, output_dim=2, bidirectional=True), ]) def test_all_bidirectional(self): ComposeEncoder([ MockSeq2SeqEncoder(input_dim=9, output_dim=5, bidirectional=True), MockSeq2SeqEncoder(input_dim=5, output_dim=2, bidirectional=True), ])
def test_all_bidirectional(self): ComposeEncoder( [ MockSeq2SeqEncoder(input_dim=9, output_dim=5, bidirectional=True), MockSeq2SeqEncoder(input_dim=5, output_dim=2, bidirectional=True), ] )
def test_mismatched_bidirectionality(self): with self.assertRaises(ValueError): ComposeEncoder( [ MockSeq2SeqEncoder(input_dim=9, output_dim=5), MockSeq2SeqEncoder(input_dim=5, output_dim=2, bidirectional=True), ] )
def test_mismatched_size(self): with self.assertRaises(ValueError): ComposeEncoder( [ MockSeq2SeqEncoder(input_dim=9, output_dim=5), MockSeq2SeqEncoder(input_dim=1, output_dim=2), ] )
def test_empty(self): with self.assertRaises(ValueError): ComposeEncoder([])
def test_empty(self): with pytest.raises(ValueError): ComposeEncoder([])