一、初步认识
在Pytorch中张量是一种基本的数据类型,用类torch.Tensor
实现
import torch
T = torch.tensor([[1, 2, 3], [4, 5, 6]])
查看张量的几个性质
- 张量的维度
T.dim()
- 张量的大小
T.size()
- 张量中的元素个数
T.numel
- (可指定)张量中元素的类型
T.dtype
例如torch.float32,torch.int64
等
二、不同的torch.Tensor类实例
函数 | 元素内容 |
---|
torch.tensor() | 传入的数据 |
torch.zeros()、torch.zeros_like() | 全为0 |
torch.ones() 、torch.ones_like() | 全为1 |
torch.full() 、torch.full_like() | 全为指定值 |
torch.empty()、torch.empty_like() | 未指定值 |
torch.eye() | 对角线元素为1,其余为0 |
torch.arange() 、torch.range()、torch.linspace() | 等差 |
torch.logspace() | 等比 |
torch.rand() 、torch.rand_like() | 服从标准均匀分布 |
torch.randn() 、torch.randn_like()、torch.normal() | 服从标准正态分布 |
torch.randint() 、torch.randint_like() | 服从离散均匀分布 |
torch.bernoulli() | {0,1}两点分布 |
torch.moltinomial() | {0,1,……n-1}多点分布 |
torch.randperm() | {0,1,……n-1}随机排列 |
三、重新组织张量元素
1.重新排列张量元素
方法 | 作用 |
---|
reshape() | 元素个数相同,改变维度和大小 |
squeeze() | 消除张量大小中大小为1的维度 |
unsqueeze() | 与squeeze相反,可以增加一些大小为1的维度 |
permute() | 将张量各维度重新排列 |
transpose() | 转置 |
2.张量的扩展和拼接
- 扩展
repeat()
- 拼接
torch.cat()
或torch.stack()
,二者有所区别
四、张量运算
函数 | 作用 |
---|
torch.pow() | 幂函数 |
torch.exp()、torch.expm1()、torch.sigmoid()、torch.sinh等 | 指数函数相关 |
torch.log() | 对数函数 |
torch.abs() | 绝对值函数 |
torch.sign() | 符号函数 |
torch.floor() | 向下取整 |
torch.ceil() | 向上取整 |
torch.around() | 四舍五入取整 |
torch.clamp() | 限制数据范围 |
五、其它常用方法
方法 | 作用 |
---|
max() / min() | 返回最大/小值 |
argmax() / argmin() | 返回最大/小值索引 |
cumsum() | 累加 |
cumprod() | 累乘 |
※ 码 字 不 易 ,欢 迎 交 流 !