Exemple #1
0
 def test_layer_from_shape_valid_get_output(self, layer_from_shape,
                                            get_outputs):
     layer = layer_from_shape
     inputs = {layer: theano.tensor.matrix()}
     assert get_outputs(layer, inputs) == (inputs[layer], )
     inputs = {None: theano.tensor.matrix()}
     layer.get_outputs_for = Mock()
     assert get_outputs(layer, inputs) is layer.get_outputs_for.return_value
     layer.get_outputs_for.assert_called_with((inputs[None], ))
Exemple #2
0
 def test_get_output_with_unused_kwarg(self, layers, get_outputs):
     l1, l2, l3 = layers
     l2.get_outputs_for = lambda data, asdf=123, **kwargs: (data, )
     unused_kwarg = object()
     with warnings.catch_warnings(record=True) as w:
         warnings.simplefilter('always')
         get_outputs(l3, kwagg=unused_kwarg)
         assert len(w) == 1
         assert issubclass(w[0].category, UserWarning)
         assert 'perhaps you meant kwarg' in str(w[0].message)
     with warnings.catch_warnings(record=True) as w:
         warnings.simplefilter('always')
         get_outputs(l3, adsf=unused_kwarg)
         assert len(w) == 1
         assert issubclass(w[0].category, UserWarning)
         assert 'perhaps you meant asdf' in str(w[0].message)
Exemple #3
0
 def test_get_output_without_arguments(self, layers, get_outputs):
     l1, l2, l3 = layers
     output = get_outputs(l3)
     # expected: l3.get_output_for(l2.get_output_for(l1.input_var))
     assert output == l3.get_outputs_for.return_value
     l3.get_outputs_for.assert_called_with(l2.get_outputs_for.return_value)
     l2.get_outputs_for.assert_called_with((l1.input_var, ))
Exemple #4
0
 def test_get_output_input_is_a_mapping_no_key(self, layers, get_outputs):
     l1, l2, l3 = layers
     output = get_outputs(l3, {})
     # expected: l3.get_output_for(l2.get_output_for(l1.input_var))
     assert output == l3.get_outputs_for.return_value
     l3.get_outputs_for.assert_called_with(l2.get_outputs_for.return_value)
     l2.get_outputs_for.assert_called_with((l1.input_var, ))
Exemple #5
0
 def test_get_output_with_single_argument(self, layers, get_outputs):
     l1, l2, l3 = layers
     inputs, kwarg = theano.tensor.matrix(), object()
     output = get_outputs(l3, inputs, kwarg=kwarg)
     # expected: l3.get_output_for(l2.get_output_for(inputs, kwarg=kwarg),
     #                             kwarg=kwarg)
     assert output == l3.get_outputs_for.return_value
     l3.get_outputs_for.assert_called_with(l2.get_outputs_for.return_value,
                                           kwarg=kwarg)
     l2.get_outputs_for.assert_called_with((inputs, ), kwarg=kwarg)
Exemple #6
0
 def test_get_output_input_is_a_mapping(self, layers, get_outputs):
     l1, l2, l3 = layers
     p = PropertyMock()
     type(l1).input_var = p
     inputs = {l3: theano.tensor.matrix()}
     # expected: inputs[l3]
     assert get_outputs(l3, inputs) == (inputs[l3], )
     # l3.get_output_for, l2.get_output_for should not have been called
     assert l3.get_output_for.call_count == 0
     assert l2.get_output_for.call_count == 0
     # l1.input_var should not have been accessed
     assert p.call_count == 0
Exemple #7
0
 def test_get_output_input_is_a_mapping_to_array(self, layers, get_outputs):
     l1, l2, l3 = layers
     p = PropertyMock()
     type(l1).input_var = p
     inputs = {l3: [[1, 2, 3]]}
     output = get_outputs(l3, inputs)
     # expected: inputs[l3]
     assert numpy.all(output[0].eval() == inputs[l3])
     # l3.get_output_for, l2.get_output_for should not have been called
     assert l3.get_output_for.call_count == 0
     assert l2.get_output_for.call_count == 0
     # l1.input_var should not have been accessed
     assert p.call_count == 0
Exemple #8
0
 def test_layer_from_shape_invalid_get_output(self, layer_from_shape,
                                              get_outputs):
     layer = layer_from_shape
     with pytest.raises(ValueError):
         get_outputs(layer)
     with pytest.raises(ValueError):
         get_outputs(layer, [1, 2])
     with pytest.raises(ValueError):
         get_outputs(layer, {layer.input_layers[1]: [1, 2]})
Exemple #9
0
 def test_get_output_input_is_a_mapping_for_layer(self, layers,
                                                  get_outputs):
     l1, l2, l3 = layers
     p = PropertyMock()
     type(l1).input_var = p
     input_expr, kwarg = theano.tensor.matrix(), object()
     inputs = {l2: input_expr}
     output = get_outputs(l3, inputs, kwarg=kwarg)
     # expected: l3.get_output_for(input_expr, kwarg=kwarg)
     assert output == l3.get_outputs_for.return_value
     l3.get_outputs_for.assert_called_with((input_expr, ), kwarg=kwarg)
     # l2.get_output_for should not have been called
     assert l2.get_outputs_for.call_count == 0
     # l1.input_var should not have been accessed
     assert p.call_count == 0
Exemple #10
0
 def test_get_output_without_arguments(self, layer, get_outputs):
     assert get_outputs(layer) == (layer.input_var, )
Exemple #11
0
 def test_get_output_with_single_argument_fails(self, layers, get_outputs):
     l1, l2, l3 = layers
     inputs, kwarg = theano.tensor.matrix(), object()
     # expected to fail: only gave one expression for two input layers
     with pytest.raises(ValueError):
         output = get_outputs(l3, inputs, kwarg=kwarg)
Exemple #12
0
 def test_get_output_with_no_unused_kwarg(self, layers, get_outputs):
     l1, l2, l3 = layers
     with warnings.catch_warnings(record=True) as w:
         warnings.simplefilter('always')
         get_outputs(l3)
         assert len(w) == 0
Exemple #13
0
 def test_get_output_input_is_a_mapping(self, layer, get_outputs):
     inputs = {layer: theano.tensor.matrix()}
     assert get_outputs(layer, inputs) == (inputs[layer], )
Exemple #14
0
 def test_get_output_input_is_array(self, layer, get_outputs):
     inputs = [[1, 2, 3]]
     output = get_outputs(layer, inputs)
     assert numpy.all(output[0].eval() == inputs)
Exemple #15
0
 def test_get_output_input_is_variable(self, layer, get_outputs):
     variable = theano.Variable("myvariable")
     assert get_outputs(layer, variable) == (variable, )