Pytorch框架
学习链接
前言总结:
常用库函数概览
转换成张量 torch.tensor
运算torch.mm(matrix1,matrix2)
并行torch.CUDA
网络torch.nn
- torch.nn.functional 激活函数和池化
- torch.nn.Linear | torch.nn.conv2d 线性和卷积
- torch.MSELoss | torch.CrossEntropyLoss 损失函数
- torch.nn.init 网络初始化
- torch.nn.Parameters 张量网络参数化
优化器torch.optim
- torch.optim.SGD
- torch.optim.lr_scheduler
辅助模块torch.utils
- torch.utils.data
- toch.utils.data.Dataset
- torch.utils.data.DataLoader
- torch.utils.tensorboard
存储载入
- torch.load()
- torch.save()
- torch.load_state_dict()
Pytorch 的计算图概览
动态图:
pytorch使用动态计算图,在计算过程中构建图(结点是运算符)。
前向构建图的时候同时构建反向计算图,输出张量绑定反向梯度函数,到了最终损失函数后,开始沿着反向图,调用反向梯度函数。权重张量绑定梯度张量,优化器这个工具人来进行优化更新权重张量。
三个主人公和工具人:
- 输出张量
- 权重张量
- 梯度张量
- 优化器(工具人)
+表示绑定
- 优化器+权重张量
- 输出张量+反向梯度函数
- 优化器 ---->权重张量<------ (梯度张量)
工具人 优化器:
LMS (online 更新) ⇒ SGD(考虑单次批次梯度信息) ⇒ Momentum(不够,再考虑之前的批次信息)⇒ AdaGrad(考虑过去所有的梯度平方和,用NLMS类似手法)⇒ RMSProp(用指数记忆过去平方梯度信息,再类似NLMS) ⇒ Adam(结合RMSProp和Momentum)
SGD, Momentum, AdaGrad, Rmsprop, Adam
-
SGD : 批次随机梯度下降
-
Momentum: w t + 1 = w t − m t \bold w_{t+1} = \bold w_t - \bold m_t wt+1=wt−mt
m t = γ . m t − 1 + α d L d w t \bold m_t = \gamma.\bold m_{t-1} + \alpha\frac{dL}{d \bold w_t} mt=γ.mt−1+αdwtdL -
AdaGrad: 类似于NLMS, 记忆梯度平方
G t = ∑ i = 1 t ( d L d w i ) 2 \bold{G_t }= \sum_{i=1}^{t}(\frac{dL}{d\bold w_i})^2 Gt=i=1∑t(dwidL)2
w t + 1 = w t − α d L d w t G t + ϵ \bold w_{t+1} = \bold w_t - \frac{\alpha \frac{dL}{d\bold w_t}}{\sqrt{\bold G_{\bold t}+\epsilon}} wt+1=wt−Gt+ϵ
PyTorch深度学习实战

本文深入探讨PyTorch框架的使用,涵盖计算图、自动微分引擎、主要模块及优化器,详解张量操作、数据加载与模型保存,适合初学者及进阶者实践深度学习项目。
最低0.47元/天 解锁文章
790

被折叠的 条评论
为什么被折叠?



