深入浅出pytorch-02 pytorch深度学习框架简介

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

学习链接

奇客谷
2
3

前言总结:

常用库函数概览

转换成张量 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=wtmt
    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=γ.mt1+α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=1t(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=wtGt+ϵ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万物琴弦光锥之外

给个0.1,恭喜老板发财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值