def test_insert_inplace(self): mySymbolicMatricesList = TypedListType( tt.TensorType(theano.config.floatX, (False, False)))() mySymbolicIndex = tt.scalar(dtype="int64") mySymbolicMatrix = tt.matrix() z = Insert()(mySymbolicMatricesList, mySymbolicIndex, mySymbolicMatrix) m = theano.compile.mode.get_default_mode().including( "typed_list_inplace_opt") f = theano.function( [ In(mySymbolicMatricesList, borrow=True, mutable=True), mySymbolicIndex, mySymbolicMatrix, ], z, accept_inplace=True, 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], np.asarray(1, dtype="int64"), y), [x, y])
def test_sanity_check(self): mySymbolicMatricesList = TypedListType( T.TensorType(theano.config.floatX, (False, False)))() myMatrix = T.matrix() myScalar = T.scalar() z = Insert()(mySymbolicMatricesList, myScalar, myMatrix) f = theano.function([mySymbolicMatricesList, myScalar, myMatrix], z) x = rand_ranged_matrix(-1000, 1000, [100, 101]) y = rand_ranged_matrix(-1000, 1000, [100, 101]) self.assertTrue(numpy.array_equal(f([x], numpy.asarray(1), y), [x, y]))
def test_sanity_check(self): mySymbolicMatricesList = TypedListType( tt.TensorType(theano.config.floatX, (False, False)) )() myMatrix = tt.matrix() myScalar = tt.scalar(dtype="int64") z = Insert()(mySymbolicMatricesList, myScalar, myMatrix) f = theano.function([mySymbolicMatricesList, myScalar, myMatrix], z) x = rand_ranged_matrix(-1000, 1000, [100, 101]) y = rand_ranged_matrix(-1000, 1000, [100, 101]) assert np.array_equal(f([x], np.asarray(1, dtype="int64"), y), [x, y])
def test_inplace(self): mySymbolicMatricesList = TypedListType( T.TensorType(theano.config.floatX, (False, False)))() myMatrix = T.matrix() myScalar = T.scalar(dtype="int64") z = Insert(True)(mySymbolicMatricesList, myScalar, myMatrix) f = theano.function([mySymbolicMatricesList, myScalar, myMatrix], z, accept_inplace=True) x = rand_ranged_matrix(-1000, 1000, [100, 101]) y = rand_ranged_matrix(-1000, 1000, [100, 101]) assert np.array_equal(f([x], np.asarray(1, dtype="int64"), y), [x, y])