def test_extend_inplace(self): mySymbolicMatricesList1 = TypedListType( tt.TensorType(theano.config.floatX, (False, False)))() mySymbolicMatricesList2 = TypedListType( tt.TensorType(theano.config.floatX, (False, False)))() z = Extend()(mySymbolicMatricesList1, mySymbolicMatricesList2) m = theano.compile.mode.get_default_mode().including( "typed_list_inplace_opt") f = theano.function( [ In(mySymbolicMatricesList1, borrow=True, mutable=True), mySymbolicMatricesList2, ], z, mode=m, ) assert f.maker.fgraph.toposort()[0].op.inplace x = rand_ranged(-1000, 1000, [100, 101]) y = rand_ranged(-1000, 1000, [100, 101]) assert np.array_equal(f([x], [y]), [x, y])
def test_sanity_check(self): mySymbolicMatricesList1 = TypedListType( T.TensorType(theano.config.floatX, (False, False)))() mySymbolicMatricesList2 = TypedListType( T.TensorType(theano.config.floatX, (False, False)))() z = Extend()(mySymbolicMatricesList1, mySymbolicMatricesList2) f = theano.function([mySymbolicMatricesList1, mySymbolicMatricesList2], z) x = rand_ranged_matrix(-1000, 1000, [100, 101]) y = rand_ranged_matrix(-1000, 1000, [100, 101]) self.assertTrue(numpy.array_equal(f([x], [y]), [x, y]))
def test_inplace(self): mySymbolicMatricesList1 = TypedListType( T.TensorType(theano.config.floatX, (False, False)))() mySymbolicMatricesList2 = TypedListType( T.TensorType(theano.config.floatX, (False, False)))() z = Extend(True)(mySymbolicMatricesList1, mySymbolicMatricesList2) f = theano.function([mySymbolicMatricesList1, mySymbolicMatricesList2], z, accept_inplace=True) x = rand_ranged_matrix(-1000, 1000, [100, 101]) y = rand_ranged_matrix(-1000, 1000, [100, 101]) self.assertTrue(np.array_equal(f([x], [y]), [x, y]))