Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
 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)