一、系列文章目录
(1)梯度下降
(2)手写数字识别引入&Pytorch 数据类型
(3)创建Tensor
(4)Broadcasting
(5)Tensor
(6)Tensor统计
(7)Where和Gather
(8)函数的梯度
(9)loss函数;自动求导
二、拆分与合并
- Cat
dimention必须一致,设置dim 在哪个维度上拼接,除了拼接的维度外其他必须一致 torch.cat((A,B),dim)
cas中dim的含义 - Stack
创建新维度
Stack中dim的含义 - Split
按长度拆分,长度相同给定长度,长度不同用[m,n]给定 - Chunk
按数量拆分,给定数量值
三、计算
- 加 add + a[3,4]和b[4]相加,利用broadcast机制直接相加
- 减 sub -
- 乘 mul *
- 除 div /
- 矩阵乘法
注意:矩阵a* b 是对应位置元素相乘
torch.mm(a,b) 只用于二维
torch.matmul(a,b) = a@b
matmul 高维相乘机制:例如四维相乘,先把后两维相乘。
例子 神经网络中的降维
x = torch.rand(4,784)
w = torch.rand(512,784)
(x@w.t()).shape #w.t()是转置
Out[14]: torch.Size([4, 512])
- a.pow( m ) m次方 等同于a**m
- a.rsqrt( )开三次方
- a.sqrt( )开平方 等同于a**(0.5)
- torch.exp(a)
- torch.log(a) 默认以2为底
- .floor()向下取整
- .ceil()向上取整
- .round()四舍五入取整
- .trunc()整数部分
- .frac()小数部份
- clamp(min,max)最小值变为min,最大值变为max
- torch.max() torch.median()