torch 中的 uniform 具体用法
背景
在陈云的书上看到这个:

下面那几个随机函数rand啥的都好理解,就是不知道uniform怎么用,查了官方文档写的太简略了,所以找了下例子,总结一下。常见两种用法。先给用例再给解释。
第一种
import torch
A = torch.Tensor(2,3)
print(A)
A.uniform_(-10,20)
print(A)
效果:

解释:
前置知识点:
- 是
uniform_(),不是uniform()!以下划线结尾的是inplace方法。- 什么是inplace方法:将会改变调用者本身值的方法。如
a, b = torch.rand(2,2), torch.rand(2,2),如果a.add(b),那么a值不变;如果a.add_(b),a值就会变为a+b。A.uniform_(-10,20)将会把A里面的每个值都从[-10, 20]里面重新随机取一次,即在[-10, 20]的随机均匀分布里面取值并重新赋值。torch.Tensor(2,3)将会创建一个形状为shape(2,3)的张量,张量值据官方文档说是根据内存残留值确定(注意torch.tensor和torch.Tensor是两个东西!!)
连起来看:
就是torch.Tensor(2,3)创建了一个“形状”,uniform_()再从规定了首尾的均匀分布里面取值重新赋值。
第二种
import torch
A = torch.randn(2,2)
print(A)
A.uniform_(-10,20)
print(A)
效果:

解释
1.torch.randn()实际上创建了一个Tensor对象。
2. 所以说对于任何的Tensor对象,都能够用.uniform_()去改变他的值。