文章标题
2016-06-22 09:22
731 查看
random
+++++++++++++++++++++++++++++++++++++++++++++++++++++Random Numbers
Torch provides accurate mathematical random generation, based on Mersenne number generator.
++++++++++++++++++++++++++++++++++++
Generator handling
All of the below functions, as well as randn() [maths.md#torch.randn], rand() [maths.md#torch.rand] and randperm() [maths.md#torch.randperm], take as optional first argument a random number generator. If this argument is not
provided, the default global RNG is used.
A non-global RNG can be obtained with Generator(). Each RNG has its own state, independent from all other RNG’s states.
-- Seed the global RNG > torch.manualSeed(0) > torch.random() 23571366044 -- Creates and seed a non-global RNG > gen = torch.Generator() > torch.manualSeed(gen, 0) > torch.random(gen) 2357136044 > torch.random(gen) 2546248239 > torch.random() 2546248239
++++++++++++++++++++++++++++++++++++++
*Seed Handling
The random number generator is provided with a random seed via seed() when torch is being initialized. It can be reinitialized using seed() or manualSeed().
Initial seed can be obtained using initialSeed().
Setting a particular seed allows the user to (re)-generate a particular sequence of random numbers. Example:
> torch.manualSeed(123) > = torch.uniform() 0.69646918727085 > return torch.uniform() 0.71295532141812 > return torch.uniform() 0.28613933874294 > torch.manualSeed(123) > return torch.uniform() 0.69646918727085 > return torch.uniform() 0.71295532141812 > return torch.uniform() 0.28613933874294 > torch.manualSeed(torch.initialSeed()) > return torch.uniform() 0.69646918727085 > return torch.uniform() 0.71295532141812 > return torch.uniform() 0.28613933874294
To regenerate a sequence of random numbers starting from a specific point in the sequence, one can save the state of the random number generator using getRNGState() and then reset the random number generator to that state using setRNGState(). Example:
> torch.manualSeed(123) > = torch.uniform() 0.69646918727085 > s = torch.getRNGState() > return torch.uniform() 0.71295532141812 > return torch.uniform() 0.28613933874294 > torch.setRNGState(s) > return torch.uniform() 0.71295532141812 > return torch.uniform() 0.28613933874294
++++++++++++++++++++++++++++++
[Generator] Generator()
Creates a non-global random generator that carries its own state and can be passed as the first argument to any function that generates a random number.
++++++++++++++++++++++++++++++++++++++++++++++++++++
[number] seed([gen,])
Set the seed of the random number generator using /dev/urandom (on Windows the time of the computer with granularity of seconds is used). Returns the seed obtained.
++++++++++++++++++++++++++++++++++++++++++++++
manualSeed([gen,] number)
Set the seed of the random number generator to the given number.
++++++++++++++++++++++++++++++++++++++++++++++++++
initialSeed([gen])
Returns the initial seed used to initialize the random generator.
++++++++++++++++++++++++++++++++++++++
*[Tensor] getRNGState([gen])
Returns the current state of the random number generator as a
torch.ByteTensor. This can then be used to set the state of the RNG so that the same sequence of random numbers is produced.
++++++++++++++++++++++++++++++++++++++++++++++
[Tensor] setRNGState([gen,] state)
Set the state of the random number generator. If state was obtained earlier using getRNGState then the random number generator should now generate the same numbers as it did from the point where state was obtained. This function returns its argument, state.
+++++++++++++++++++++++++++++++++++++++++++++++++++
[number] random([gen,] [a], [b])
Returns an unsigned 32 bit integer random number from [a,b]. By default a is 1 and b is 2^32.
+++++++++++++++++++++++++++++
[number] uniform([gen,] [a],[b])
Returns a random real number according to uniform distribution on [a,b). By default a is 0 and b is 1.
+++++++++++++++++++++++++++++++++++++++++++++++
[number] normal([gen,] [mean],[stdv])
Returns a random real number according to a normal distribution with the given mean and standard deviation stdv. stdv must be positive.
+++++++++++++++++++++++++++++++++++++++
[number] exponential([gen,] lambda)
Returns a random real number according to the exponential distribution ”p(x) = lambda * exp(-lambda * x)”
++++++++++++++++++++++++++++++++++++++++++++++++++
[number] cauchy([gen,] median, sigma)
Returns a random real number according to the Cauchy distribution ”p(x) =sigma/(pi*(sigma^2 + (x-median)^2))”
++++++++++++++++++++++++++++++++++++++++
[number] logNormal([gen,] mean, stdv)
Returns a random real number according to the log-normal distribution, with the given mean and standard deviation stdv. stdv must be positive.
+++++++++++++++++++++++++++++++++++++++++++
[number] geometric([gen,] p)
Returns a random integer number according to a geometric distribution ”p(i) = (1-p) * p^i-1.pmust satisfy0 < p < 1”.
++++++++++++++++++++++++++++++++++++++
[number] bernoulli([gen,] [p])
Returns 1 with probability p and 0 with probability 1-p. p must satisfy 0 <=p <= 1. By default p is equal to [0;36m0.5].
相关文章推荐
- AngularJS之scope中的Dirty Checking(脏数据检查)
- parameter和Attribute
- ubuntu一些基本软件安装方法
- 他乡_视频_目录
- 0622—软件工程第一学期总结
- IOS热更新-JSPatch实现原理+Patch现场恢复
- 让你真正明白cinder与swift、glance的区别
- Unsupported Gradle DSL method found: 'exclude()'
- ADC位数与LSB误差
- Leetcode Median of Two Sorted Arrays
- JSBridge(Android和IOS平台)的设计和实现
- 动作
- 在浏览器中显示图片的方法
- 设计模式——单例模式 main方法的解释
- JS 语言 运动 旋转公式
- iOS—简单封装UITableView使用2
- swiper的基础使用(六)
- 第三方登录 友盟QQ登录
- 什么是掩码,掩码的用途是什么
- Call Directory Extension 初探