PyTorch进阶
- 五、进阶操作
- 5.1 合并与分割
- `cat`-合并
- `stack`-创建新维度
- `split`-by len
- `chunk`-by num
- 5.2 数学运算
- `basic`- + - * /
- `matmul`-矩阵相乘
- `power`-幂次运算
- `log exp`
- `approximation`-求近似
- `clamp`-裁剪
- 5.3 属性统计
- `norm`-范数
- `min;max;mean;prod`-最小;最大;均值;累乘
- `dim;keepdim`
- `topk`-前k个
- `kthvalue`-第k小的值
- `compare`
- 5.4 高阶操作
- `where`
- `gather`
- 六、随机梯度下降
- 6.1 梯度
- 6.2 常见函数的梯度
- 6.3 激活函数及其梯度
- sigmoid
- tanh
- ReLU
- 6.4 loss及其梯度
- mean squared error:均方差
- 梯度:
- loss.backward
- softmax
- 6.5 感知机
- 6.6 反向传播算法
- 6.7 2D函数优化实例
五、进阶操作
5.1 合并与分割
cat
-合并
stack
-创建新维度
注:原shape必须一样
split
-by len
参数是长度
chunk
-by num
参数是数量
5.2 数学运算
basic
- + - * /
matmul
-矩阵相乘
torch.mm:只适用2d矩阵,不推荐适用
2维以上的矩阵相乘时
power
-幂次运算
log exp
approximation
-求近似
clamp
-裁剪
5.3 属性统计
norm
-范数
min;max;mean;prod
-最小;最大;均值;累乘
注:参数表示返回某一维度上的最大或最小值
dim;keepdim
topk
-前k个
kthvalue
-第k小的值
compare
5.4 高阶操作
where
gather
torch.gather(input, dim, index, out=None)->Tensor
六、随机梯度下降
6.1 梯度
导数derivate:标量
偏微分partial derivate:多元;标量
梯度gradient:偏微分的向量
梯度下降法可参考机器学习-吴恩达(第一周) 鞍点:在某一点取得一个维度的局部极大值而在另一维度取得局部极小值
影响优化器的因素:
1.局部极小值
2.鞍点
3.初始状态
4.学习率
5.动量-逃离局部最小值
6.2 常见函数的梯度
导数表:
6.3 激活函数及其梯度
激活函数可参考李飞飞计算机视觉-自用笔记(第二周)
sigmoid
tanh
tanh(x) = 2sigmoid(2x) - 1
ReLU
6.4 loss及其梯度
mean squared error:均方差
梯度:
求梯度:
loss.backward
softmax
注:除了可以得到概率结果这个属性外,还起到空间放缩的作用
导数:
代码实现:
6.5 感知机
对于xli:l表示层编号,i表示节点编号
对于wlij:l表示层编号,i表示上一层节点编号,j表示本层节点编号
求导:
单层感知机梯度推导代码实现:
多层感知机
代码实现:
6.6 反向传播算法
可参考机器学习-吴恩达(第三周)与李飞飞计算机视觉-自用笔记(第二周)
6.7 2D函数优化实例
f(x, y) = (x2 + y -11)2 + (x + y2 - 7)2
此函数的图像及极小值点: