torch.autograd.Variable
Variable是torch.autograd中的数据类型,主要用于封装Tensor,进行自动求导 data: 被包装的Tensor grad: data的梯度 grad_fn: 创建Tensor的Function,是自动求导的关键 requires_grad: 指示是否需要梯度 is_leaf: 指示是否是叶子节点
torch.Tensor
从Pytorch0.4.0开始,Variable并入Tensor dtype: 张量的数据类型,如torch.FloatTensor或torch.cuda.FloatTensor shape: 张量的形状 device: 张量所在设备,GPU、CPU data: 被包装的Tensor grad: data的梯度 grad_fn: 创建Tensor的Function,是自动求导的关键 requires_grad: 指示是否需要梯度 is_leaf: 指示是否是叶子节点
Tensor的创建方法:
- 直接创建
torch.tensor(
data,
dtype=None,
device=None,
requires_grad=False,
pin_memory=False
)
功能: 从data创建tensor data:数据,可以是list,numpy dtype: 数据类型,默认与data的一致 device:所在设备,cuda/cpu requires_grad:是否需要梯度 pin_memory: 是否存在于锁页内存,会更快 也可以使用torch.from_numpy(ndarray) 2. 依据数值创建
torch.zeros(
*size,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False
)
功能:依size创建全0张量 size:张量的形状,如(3,3)、(3,244,244) out:输出的张量 layout:内存中布局形式,有strided(顺序存储,大多用于稠密张量),sparse_coo(离散存储,大多用于稀疏张量) device: 所在设备,gpu、cpu requires_grad:是否需要梯度
torch.zeros_like(input,
dtype=None,
layout=None,
device=None,
requires_grad=False)
功能:依input形状创建全0张量
torch.arange(start=0,
end,
step=1,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False)
功能:创建等差的一维张量 注意事项:数值区间为[start, end) start:数列起始值 end:数列“结束值” step:数列公差,默认为1
torch.linspace(
start,
end,
steps=100,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False)
功能:创建均分的1维向量 注意事项:数值区间为[start, end] start:数列起始值 end:数列结束值 steps:数列长度
torch.logspace(start,
end,
steps=100,
base=10.0,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False)
功能: 创建对数均分的1维张量 注意事项:长度为steps,底为base start: 数列起始值 end: 数列结束值 steps: 数列长度 base:对数函数的底,默认为10
- 依概率分布创建张量
torch.normal(mean,
std,
out=None)
功能:生成正态分布(高斯分布) mean:均值 std: 标准差
torch.randn(*size,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False)
torch.randn_like() 功能:生成标准正态分布
torch.rand(*size,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False)
torch.randint(
low=0,
high,
size,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False
)
torch.rand() torch.rand_like() 功能:在区间[0,1)上,生成均匀分布 torch.randint() torch.randint_like() 功能:在区间[low,high)生成整数均匀分布 size:张量的形状
|