Pytorch 1.张量简介与创建


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的创建方法:

  1. 直接创建
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

  1. 依概率分布创建张量
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:张量的形状

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值