随机抽样类函数
1.torch.manual_seed(seed)
设定生成随机数的种子,并返回一个torch._C.Generator对象
参数:seed(int or long)种子
2.torch.initial_seed()
返回生成随机数的原始种子(pathon long)
3.torch.get_rng_state()
返回随机生成器状态(Byte Tensor)
4.torch.set_rng_state(new_state)
设定随机生成器状态
参数:new_state(torch.Byte Tensor)-期望的状态
5.torch.default_generator=
6.torch.bernoulli(input,out=None)->Tensor
从伯努利分布中抽取二元随机数(0 or 1)
输入张量需包含用于抽取上述二元随机值的概率。因此,输入中的所有值都必须在[0,1]区间。
输出张量的第i个元素值,将会以输入张量的第i个概率值等于1.
返回值将会是与输入相同大小的张量,每个值为0或者1
input(Tensor)---伯努利分布的概率值
out(Tensor, optional)---张量
例子:
uniform_(0,1)使得产生的矩阵规范在[0,1]区间内
7.torch.mutinomial(input,num_samples,replacement=False,out=None)->Long Tensor
返回一个张量,每行包含从input相应行中定义的多项分布中抽取的num_samples个样本。
注意:input每行的值不需要总和为1,但必须非负且总和不能为0
当抽取样本时,依次从左到右排列(第一个样本对应第一列)
如果input是一个向量时,out也是一个相同长度num_samples的向量
如果input是一个矩阵,out对应是矩阵
如果replacement=True,则样本抽取可以重复。否则一个样本在每行不能被重复抽取。
num_samples必须小于input的长度
参数:input(Tensor)---包含概率的张量
num_samples(int)---抽取的样本数
replacement(bool,optional)
out(Tensor,optional)
例子:
8.torch.normal(means,std,out=None)
返回一个张量,包含从给定参数means,std,的离散正态分布中抽取随机数
参数:
means(Tensor)----包含每个输出元素相关的正态分布的均值
std(Tensor)---包含每个输出元素相关的正态分布的标准差
均值和标准差的形状不须匹配,但每个张量的元素个数须相同。
例子:
注意:当means或std 为标量时,则共享
索引,切片,连接,换位
1.torch.cat(inputs,dimension=0)->tensor
在给定维度上对输入的张量序列进行连接操作
参数:
inputs(sequence of Tensors)---可以是任意相同Tensor类型的python序列
dimension(int,optional)---沿此维连接张量序列
例子:
2.torch.squeeze(inout,dim=None,out=None)
将输入张量形状中的1去除并返回
给定维时,只在给定维度上挤压
注意:返回张量和输入张量共享内存,改变其中一个的内容会改变另一个
例子:
3.torch.unsqueeze(input,dim,out=None)
类似2
例子:
创建操作
1.torch.eye(n,m=None,out=None)
返回一个2维张量,对角线位置全为1,其他位置全0
参数:
n(int)----行数
m(int,optional)---列数,如果为None默认为n
out(Tensor,optional)
2.torch.from_numpy(ndarray)--->Tensor
Numpy桥,将numpy.ndarray转换为pytorch的Tensor
返回的张量tensor和numpy的ndarray共享同一内存空间。修改一个会导致另外一个也被修改,返回的张量不能改变大小
例子:
3.torch.linspace(start,end,steps=100,out=None)--->Tensor
返回一个一维张量,包含区间start和end上均匀间隔的steps个点。
输出1维张量的长度为steps
参数:略
例子:
4.torch.logspace(start,end,steps=100.out=None)--->Tensor
设置的区间为常用对数,输出的值为其对应的真数
其余的同2
例子:
5.torch.ones(*sizes,out=None)--->Tensor
例子:
6.torch.rand(*sizes,out=None)--->Tensor
(0,1)区间均匀分布随机抽取
例子:
7.torch.randn(*sizes,out=None)--->Tensor标准正态分布(均值0方差1,即高白噪声)中随机抽取
同上
8.torch.randperm(n,out=None)--->Long Tensor
给定参数n,返回一个从0到n-1的随机整数排列
9.torch.arange(start,end,step=1,out=None)--->Tensor
参数:
start(float)-------序列起始点
end(float)--------序列终止点
step(float)------相邻点的间隔大小
out(Tensor,optional)
例子:
10.torch.range(start,end,step=1,out=None)--->Tensor
例子:
建议使用torch.arange
11.torch.zeros(*sizes,out=None)--->Tensor
类似于torch.ones()
比较操作
1.torch.max(input,dim,max=None,max_indices=None)--->(Tensor,LongTensor)
返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引
输出形状中,将dim维设为1,其他与输入型状保持一致
参数:
input (Tensor) – 输入张量
dim (int) – 指定的维度
max (Tensor, optional) – 结果张量,包含给定维度上的最大值
max_indices (LongTensor, optional) – 结果张量,包含给定维度上每个最大值的位置索引
如果只有一个输入,返回所有元素中的最大值
如果输入两个相同形状的张量,返回的张量形状不变,每个位置两个向量中的最大值