コード例 #1
0
    def check_normal(self, dtype):
        vals = self.generate_many(
            self.args[0], self.args[1], self.size, dtype, _count=10)

        shape = core.get_size(self.size)
        for val in vals:
            assert isinstance(val, cupy.ndarray)
            assert val.dtype == dtype
            assert val.shape == shape
コード例 #2
0
ファイル: test_generator.py プロジェクト: niya210/cupy
    def check_random_sample(self, dtype):
        vals = [self.rs.random_sample(self.size, dtype) for _ in range(10)]

        shape = core.get_size(self.size)
        for val in vals:
            assert isinstance(val, cupy.ndarray)
            assert val.dtype == dtype
            assert val.shape == shape
            assert (0 <= val).all()
            assert (val < 1).all()
コード例 #3
0
    def check_multivariate_normal(self, dtype):
        vals = self.generate_many(
            mean=self.args[0], cov=self.args[1], size=self.size, tol=self.tol,
            dtype=dtype, _count=10)

        shape = core.get_size(self.size)
        for val in vals:
            assert isinstance(val, cupy.ndarray)
            assert val.dtype == dtype
            assert val.shape == shape + (2,)
コード例 #4
0
    def check_normal(self, curand_func, dtype):
        shape = core.get_size(self.size)
        exp_size = six.moves.reduce(operator.mul, shape, 1)
        if exp_size % 2 == 1:
            exp_size += 1

        curand_func.return_value = cupy.zeros(exp_size, dtype=dtype)
        out = self.rs.normal(self.args[0], self.args[1], self.size, dtype)
        gen, _, size, loc, scale = curand_func.call_args[0]
        self.assertIs(gen, self.rs._generator)
        self.assertEqual(size, exp_size)
        self.assertIs(loc, self.args[0])
        self.assertIs(scale, self.args[1])
        self.assertEqual(out.shape, shape)
コード例 #5
0
ファイル: test_generator.py プロジェクト: DoliDoli/chainer
    def check_normal(self, curand_func, dtype):
        shape = core.get_size(self.size)
        exp_size = six.moves.reduce(operator.mul, shape, 1)
        if exp_size % 2 == 1:
            exp_size += 1

        curand_func.return_value = cupy.zeros(exp_size, dtype=dtype)
        out = self.rs.normal(self.args[0], self.args[1], self.size, dtype)
        gen, _, size, loc, scale = curand_func.call_args[0]
        self.assertIs(gen, self.rs._generator)
        self.assertEqual(size, exp_size)
        self.assertIs(loc, self.args[0])
        self.assertIs(scale, self.args[1])
        self.assertEqual(out.shape, shape)
コード例 #6
0
ファイル: generator.py プロジェクト: 2php/chainer
 def _generate_normal(self, func, size, dtype, *args):
     # curand functions below don't support odd size.
     # * curand.generateNormal
     # * curand.generateNormalDouble
     # * curand.generateLogNormal
     # * curand.generateLogNormalDouble
     size = core.get_size(size)
     element_size = six.moves.reduce(operator.mul, size, 1)
     if element_size % 2 == 0:
         out = cupy.empty(size, dtype=dtype)
         func(self._generator, out.data.ptr, out.size, *args)
         return out
     else:
         out = cupy.empty((element_size + 1,), dtype=dtype)
         func(self._generator, out.data.ptr, out.size, *args)
         return out[:element_size].reshape(size)
コード例 #7
0
 def _generate_normal(self, func, size, dtype, *args):
     # curand functions below don't support odd size.
     # * curand.generateNormal
     # * curand.generateNormalDouble
     # * curand.generateLogNormal
     # * curand.generateLogNormalDouble
     size = core.get_size(size)
     element_size = six.moves.reduce(operator.mul, size, 1)
     if element_size % 2 == 0:
         out = cupy.empty(size, dtype=dtype)
         func(self._generator, out.data.ptr, out.size, *args)
         return out
     else:
         out = cupy.empty((element_size + 1, ), dtype=dtype)
         func(self._generator, out.data.ptr, out.size, *args)
         return out[:element_size].reshape(size)
コード例 #8
0
ファイル: _generator.py プロジェクト: nvwa-makesi/cupy
 def _generate_normal(self, func, size, dtype, *args):
     # curand functions below don't support odd size.
     # * curand.generateNormal
     # * curand.generateNormalDouble
     # * curand.generateLogNormal
     # * curand.generateLogNormalDouble
     if size is None:
         size = ()  # TODO(kataoka): Remove this after #4615 is merged
     size = core.get_size(size)
     element_size = core.internal.prod(size)
     if element_size % 2 == 0:
         out = cupy.empty(size, dtype=dtype)
         func(self._generator, out.data.ptr, out.size, *args)
         return out
     else:
         out = cupy.empty((element_size + 1, ), dtype=dtype)
         func(self._generator, out.data.ptr, out.size, *args)
         return out[:element_size].reshape(size)
コード例 #9
0
ファイル: test_ndarray.py プロジェクト: mnicely/cupy
 def test_none(self):
     assert core.get_size(None) == ()
コード例 #10
0
 def test_float(self):
     with self.assertRaises(ValueError):
         core.get_size(1.0)
コード例 #11
0
 def test_int(self):
     self.assertEqual(core.get_size(1), (1, ))
コード例 #12
0
ファイル: test_ndarray.py プロジェクト: DoliDoli/chainer
 def check_collection(self, a):
     self.assertEqual(core.get_size(a), tuple(a))
コード例 #13
0
ファイル: test_ndarray.py プロジェクト: mnicely/cupy
 def test_float(self):
     with pytest.raises(ValueError):
         core.get_size(1.0)
コード例 #14
0
ファイル: test_ndarray.py プロジェクト: DoliDoli/chainer
 def test_float(self):
     with self.assertRaises(ValueError):
         core.get_size(1.0)
コード例 #15
0
ファイル: test_ndarray.py プロジェクト: DoliDoli/chainer
 def test_int(self):
     self.assertEqual(core.get_size(1), (1,))
コード例 #16
0
ファイル: test_ndarray.py プロジェクト: mnicely/cupy
 def check_collection(self, a):
     assert core.get_size(a) == tuple(a)
コード例 #17
0
ファイル: test_ndarray.py プロジェクト: mnicely/cupy
 def test_int(self):
     assert core.get_size(1) == (1,)
コード例 #18
0
 def test_none(self):
     self.assertEqual(core.get_size(None), ())
コード例 #19
0
 def check_collection(self, a):
     self.assertEqual(core.get_size(a), tuple(a))
コード例 #20
0
ファイル: test_ndarray.py プロジェクト: DoliDoli/chainer
 def test_none(self):
     self.assertEqual(core.get_size(None), ())