def _get_mask_and_apply_dropout(x, mask, y, dropout_ratio, scale): _Dropout = _get_dropout_kernel() bdim, gdim = gpu.utils.Get_bdim_and_gdim1D(x.size) rs = generator.get_random_state() curand.generateUniform(rs._generator, mask.data.ptr, mask.size) _Dropout(grid=gdim, block=bdim, args=(x, mask, y, np.float32(dropout_ratio), np.float32(scale), np.int32(x.size))) return y, mask
def _get_mask_and_apply_dropout(x, mask, y, dropout_ratio, scale): _Dropout = _get_dropout_kernel() bdim, gdim = gpu.utils.Get_bdim_and_gdim1D(x.size) rs = generator.get_random_state() curand.generateUniform(rs._generator, mask.data.ptr, mask.size) _Dropout(grid=gdim, block=bdim, args=(x, mask, y, np.float32(dropout_ratio), np.float32(scale), np.int32(x.size) ) ) return y, mask
def random_sample(self, size=None, dtype=float): """Returns an array of random values over the interval ``[0, 1)``. .. seealso:: :func:`cupy.random.random_sample` for full documentation, :meth:`numpy.random.RandomState.random_sample` """ dtype = _check_and_get_dtype(dtype) size = _get_size(size) out = cupy.empty(size, dtype=dtype) if dtype.type == numpy.float32: curand.generateUniform(self._generator, out._fptr, out.size) else: curand.generateUniformDouble(self._generator, out._fptr, out.size) RandomState._1m_kernel(out) return out
def random_sample(self, size=None, dtype=float): """Returns an array of random values over the interval ``[0, 1)``. .. seealso:: :func:`cupy.random.random_sample` for full documentation, :meth:`numpy.random.RandomState.random_sample` """ dtype = _check_and_get_dtype(dtype) size = _get_size(size) out = cupy.empty(size, dtype=dtype) if dtype.type == numpy.float32: curand.generateUniform(self._generator, out._fptr, out.size) else: curand.generateUniformDouble(self._generator, out._fptr, out.size) RandomState._1m_kernel(out) return out
def fill_random(self, arr): ptr = arr.__cuda_array_interface__['data'][0] curand.generateUniform(self._rng, ptr, arr.size) if (args.use_common_seed): self.offset += args.lattice_n * args.lattice_m // 2 curand.setGeneratorOffset(self._rng, self.offset)