assert m.z.b == 6 assert all(m.z.c == [7, 8]) class MyModule(Module): def __init__(self): Module.__init__(self) self.a = T.dscalar() self.b = T.dscalar() def _instance_initialize(self, obj): obj.a = 4.5 obj.b = 3.5 def _instance_something(self, obj, a): return obj.a + a def test_pickle_module(): M = MyModule() m = M.make() mm = copy.deepcopy(m) assert m.a == mm.a assert m.b == mm.b if __name__ == '__main__': from theano.tests import main # main(__file__[:-3]) main("test_module") # t=T_test_module() # t.test_shared_members() # tests = unittest.TestLoader().loadTestsFromModule("T_test_module") # tests.debug()
# normal with explicit size and size implicit in parameters # cf. NOTE 1 post_r, out = normal(rng_R, avg=avg, std=std, size=size_val) self._compile_and_check([rng_R, avg, std], [out], [rng_R_val, avg_val, std_val], RandomFunction) # multinomial with tensor-3 probabilities """ #multinomial infer_shape don't work. pvals = dtensor3() n = iscalar() post_r, out = multinomial(rng_R, n=n, pvals=pvals, size=(1, -1)) pvals_val = [[[.1, .9], [.2, .8], [.3, .7]]] n_val = 9 self._compile_and_check([rng_R, n, pvals], [out], [rng_R_val, n_val, pvals_val], RandomFunction) post_r, out = multinomial(rng_R, n=n, pvals=pvals, size=(10, 1, -1)) self._compile_and_check([rng_R, n, pvals], [out], [rng_R_val, n_val, pvals_val], RandomFunction) """ if __name__ == '__main__': from theano.tests import main main("test_raw_random")
# Specifying the size explicitly numpy_rng = numpy.random.RandomState(int(seed_gen.randint(2**30))) val2 = made.g(n_val, pvals_val) numpy_val2 = numpy.asarray([numpy_rng.multinomial(n=nv, pvals=pv) for nv, pv in zip(n_val, pvals_val)]) assert numpy.all(val2 == numpy_val2) self.assertRaises(ValueError, made.g, n_val[:-1], pvals_val[:-1]) def test_dtype(self): m = Module() m.random = RandomStreams(utt.fetch_seed()) low = tensor.lscalar() high = tensor.lscalar() out = m.random.random_integers(low=low, high=high, size=(20,), dtype='int8') assert out.dtype == 'int8' m.f = Method([low, high], out) made = m.make() made.random.initialize() val0 = made.f(0, 9) assert val0.dtype == 'int8' val1 = made.f(255, 257) assert val1.dtype == 'int8' assert numpy.all(abs(val1) <= 1) if __name__ == '__main__': from theano.tests import main main("test_randomstreams")
meant to detect a previous bug where state_updates was initialized as a class-attribute, instead of the __init__ function. """ rng1 = RandomStreams(1234) rng2 = RandomStreams(2392) assert rng1.state_updates is not rng2.state_updates assert rng1.gen_seedgen is not rng2.gen_seedgen def test_random_state_transfer(self): """ Test that random state can be transferred from one theano graph to another. """ class Graph: def __init__(self, seed=123): self.rng = RandomStreams(seed) self.y = self.rng.uniform(size=(1,)) g1 = Graph(seed=123) f1 = function([], g1.y) g2 = Graph(seed=987) f2 = function([], g2.y) for (su1, su2) in zip(g1.rng.state_updates, g2.rng.state_updates): su2[0].set_value(su1[0].get_value()) numpy.testing.assert_array_almost_equal(f1(), f2(), decimal=6) if __name__ == '__main__': from theano.tests import main main("test_shared_randomstreams")
class-attribute, instead of the __init__ function. """ rng1 = RandomStreams(1234) rng2 = RandomStreams(2392) assert rng1.state_updates is not rng2.state_updates assert rng1.gen_seedgen is not rng2.gen_seedgen def test_random_state_transfer(self): """ Test that random state can be transferred from one theano graph to another. """ class Graph: def __init__(self, seed=123): self.rng = RandomStreams(seed) self.y = self.rng.uniform(size=(1, )) g1 = Graph(seed=123) f1 = function([], g1.y) g2 = Graph(seed=987) f2 = function([], g2.y) for (su1, su2) in zip(g1.rng.state_updates, g2.rng.state_updates): su2[0].set_value(su1[0].get_value()) numpy.testing.assert_array_almost_equal(f1(), f2(), decimal=6) if __name__ == '__main__': from theano.tests import main main("test_shared_randomstreams")