【PyTorch】前向传播、反向传播和计算图

  • 前向传播:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。
  • 计算图:可视化计算中操作符和变量的依赖关系的图形。其中正方形表示变量,圆圈表示操作符。 左下角表示输入,右上角表示输出。 注意显示数据流的箭头方向主要是向右和向上的。
  • 反向传播:指的是计算神经网络参数梯度的方法。简言之,该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。 该算法存储了计算某些参数梯度时所需的任何中间变量(偏导数)。
  • 训练神经网络时,前向传播和反向传播相互依赖。 对于前向传播,我们沿着依赖的方向遍历计算图并计算其路径上的所有变量。 然后将这些变量用于反向传播,利用反向传播给出的梯度来更新模型参数。为了避免重复计算,我们需要保留中间值,直到反向传播完成。这也是训练比单纯的预测需要更多的内存(显存)的原因之一。 此外,这些中间值的大小与网络层的数量和批量的大小大致成正比。 因此,使用更大的批量来训练更深层次的网络更容易导致内存不足错误。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-08 15:46:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-08 15:46:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-08 15:46:03       82 阅读
  4. Python语言-面向对象

    2023-12-08 15:46:03       91 阅读

热门阅读

  1. Echarts地图案例及常见问题

    2023-12-08 15:46:03       60 阅读
  2. Fabric 画布缩放、拖动、初始化大小

    2023-12-08 15:46:03       60 阅读
  3. adb push报错:remote couldn‘t create file: Is a directory

    2023-12-08 15:46:03       60 阅读
  4. Go 语言 iota 的神奇力量

    2023-12-08 15:46:03       56 阅读
  5. linux下ls和df卡死

    2023-12-08 15:46:03       63 阅读
  6. GO设计模式——13、享元模式(结构型)

    2023-12-08 15:46:03       58 阅读
  7. Linux卸载MySql(简洁版)

    2023-12-08 15:46:03       49 阅读
  8. Docker-compose 部署kong + konga

    2023-12-08 15:46:03       62 阅读
  9. 开发工具idea中推荐插件

    2023-12-08 15:46:03       56 阅读
  10. RPC 集群,gRPC 广播和组播

    2023-12-08 15:46:03       58 阅读
  11. js 如何判断一个数组内的值都为true

    2023-12-08 15:46:03       63 阅读