译者:冯宝宝

本说明将概述autograd(自动求导)如何工作并记录每一步操作。了解这些并不是绝对必要的,但我们建议您熟悉它,因为它将帮助你编写更高效,更清晰的程序,并可以帮助您进行调试。

反向排除子图

每个张量都有一个标志:requires_grad,允许从梯度计算中细致地排除子图,并可以提高效率。

requires_grad

只要有单个输入进行梯度计算操作,则其输出也需要梯度计算。相反,只有当所有输入都不需要计算梯度时,输出才不需要梯度计算。如果其中所有的张量都不需要进行梯度计算,后向计算不会在子图中执行。

>>> x = torch.randn(5, 5)  # requires_grad=False by default
>>> y = torch.randn(5, 5)  # requires_grad=False by default
>>> z = torch.randn((5, 5), requires_grad=True)
>>> a = x + y
>>> a.requires_grad
False
>>> b = a + z
>>> b.requires_grad
True

当你想要冻结部分模型或者事先知道不会使用某些参数的梯度时,这些标志非常有用。例如,如果要微调预训练的CNN,只需在冻结的基础中切换requires_grad标志就够了,并且直到计算到达最后一层,才会保存中间缓冲区,,其中仿射变换将使用所需要梯度的权重 ,网络的输出也需要它们。

model = torchvision.models.resnet18(pretrained=True)
for param in model.parameters():param.requires_grad = False
# Replace the last fully-connected layer
# Parameters of newly constructed modules have requires_grad=True by default
model.fc = nn.Linear(512, 100)

阅读全文/改进本文

PyTorch 1.0 中文文档:自动求导机制相关推荐

  1. PyTorch 1.0 中文文档正式接受校对 | ApacheCN

    参与方式:https://github.com/apachecn/pytorch-doc-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.com/ ...

  2. PyTorch 1.0 中文文档:多进程最佳实践

    译者:cvley torch.multiprocessing 是 Python 的 multiprocessing 的直接替代模块.它支持完全相同的操作,但进行了扩展,这样所有的张量就可以通过一个 m ...

  3. PyTorch 1.0 中文文档:常见问题解答

    译者:冯宝宝 我的模型报告"cuda runtime error(2): out of memory" 正如错误消息所示,您的GPU显存已耗尽.由于经常在PyTorch中处理大量数 ...

  4. PyTorch 1.0 中文文档:torch.utils.bottleneck

    译者: belonHan torch.utils.bottleneck是 调试瓶颈bottleneck时首先用到的工具.它总结了python分析工具与PyTorch自动梯度分析工具在脚本运行中情况. ...

  5. PyTorch 1.0 中文文档:torch.autograd

    译者:gfjiangly torch.autograd 提供类和函数,实现任意标量值函数的自动微分. 它要求对已有代码的最小改变-你仅需要用requires_grad=True关键字为需要计算梯度的声 ...

  6. PyTorch 1.0 中文文档:torch.onnx

    译者:guobaoyo 示例:从Pytorch到Caffe2的端对端AlexNet模型 这里是一个简单的脚本程序,它将一个在 torchvision 中已经定义的预训练 AlexNet 模型导出到 O ...

  7. PyTorch 1.0 中文文档:广播语义

    译者:冯宝宝 许许多多的PyTorch操作都支持NumPy Broadcasting Semantics. 简而言之,如果PyTorch操作支持广播,那么它的Tensor参数可以自动扩展为相同的类型大 ...

  8. PyTorch 1.0 中文文档:torchvision.utils

    译者:BXuan694 torchvision.utils.make_grid(tensor, nrow=8, padding=2, normalize=False, range=None, scal ...

  9. PyTorch 1.0 中文文档:torch.hub

    译者:kunwuz torch.hub.load(github, model, force_reload=False, *args, **kwargs) 从github上加载一个带有预训练权重的模型. ...

最新文章

  1. 职业高中计算机原理,132-浅议职业高中计算机组成原理教法初探
  2. 北京阿里云ACE态势感知大屏体验黑客攻击与防御
  3. 常用Redis命令总结
  4. POJ - 3263 Tallest Cow(简单差分)
  5. java判断字符串中是否包含字母
  6. java必读书籍_最佳5本Java性能调优书籍–精选,必读
  7. Mplayer后台播放没有声音
  8. Leetcode-二叉搜索树最近公共祖先
  9. 值得收藏的数据库基础总结!
  10. win10桌面搜索不能用的问题
  11. mysql group by 聚合_浅析MySQL使用 GROUP BY 分组聚合与细分聚合
  12. JavaSE基础笔记一
  13. 电力拖动自动控制系统_教授为你解读“电气工程及其自动化”专业类
  14. idea Process finished with exit code -1073741819 (0xC0000005)
  15. QT 矢量绘图和非矢量绘图(一)
  16. 虚拟机 服务器 root,虚拟机切换到root账户
  17. 《SpringSecurity in Action》四:Session共享下的Session并发控制问题
  18. 水星mw325r设置无线服务器未响应,水星MW325R无线路由器上网的设置技巧
  19. 兆骑科创创新创业服务平台,海内外高层次人才引进,活动赛事
  20. Windows自动恢复报错:无法加载操作系统,原因是关键系统驱动程序丢失或包含错误

热门文章

  1. (16)Verilog HDL常量:数值表示
  2. 服务器cpu位置,服务器CPU满载,谁之过?
  3. 一定质量的封闭气体被压缩后_单螺杆压缩机
  4. bat 复制文件夹_一个神奇的bat批处理文件,更好的隐藏电脑里的文件或者文件夹...
  5. 1015. vs项目编译成功INSTALL时
  6. 1004.ubuntu16.04 安装protobuf
  7. 文本删除空行_Word的空行、空格、页眉线删不了?8秒一次性处理,教你删掉它们...
  8. 安徽省第二次计算机水平考试,2006第二次安徽省计算机水平考试试卷(ACCESS).doc...
  9. oracle字符串使用函数,oracle函数大全-字符串处理函数
  10. Revit二次开发The symbol is not active