PyTorch 1.0 中文文档:自动求导机制
译者:冯宝宝
本说明将概述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 中文文档:自动求导机制相关推荐
- PyTorch 1.0 中文文档正式接受校对 | ApacheCN
参与方式:https://github.com/apachecn/pytorch-doc-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.com/ ...
- PyTorch 1.0 中文文档:多进程最佳实践
译者:cvley torch.multiprocessing 是 Python 的 multiprocessing 的直接替代模块.它支持完全相同的操作,但进行了扩展,这样所有的张量就可以通过一个 m ...
- PyTorch 1.0 中文文档:常见问题解答
译者:冯宝宝 我的模型报告"cuda runtime error(2): out of memory" 正如错误消息所示,您的GPU显存已耗尽.由于经常在PyTorch中处理大量数 ...
- PyTorch 1.0 中文文档:torch.utils.bottleneck
译者: belonHan torch.utils.bottleneck是 调试瓶颈bottleneck时首先用到的工具.它总结了python分析工具与PyTorch自动梯度分析工具在脚本运行中情况. ...
- PyTorch 1.0 中文文档:torch.autograd
译者:gfjiangly torch.autograd 提供类和函数,实现任意标量值函数的自动微分. 它要求对已有代码的最小改变-你仅需要用requires_grad=True关键字为需要计算梯度的声 ...
- PyTorch 1.0 中文文档:torch.onnx
译者:guobaoyo 示例:从Pytorch到Caffe2的端对端AlexNet模型 这里是一个简单的脚本程序,它将一个在 torchvision 中已经定义的预训练 AlexNet 模型导出到 O ...
- PyTorch 1.0 中文文档:广播语义
译者:冯宝宝 许许多多的PyTorch操作都支持NumPy Broadcasting Semantics. 简而言之,如果PyTorch操作支持广播,那么它的Tensor参数可以自动扩展为相同的类型大 ...
- PyTorch 1.0 中文文档:torchvision.utils
译者:BXuan694 torchvision.utils.make_grid(tensor, nrow=8, padding=2, normalize=False, range=None, scal ...
- PyTorch 1.0 中文文档:torch.hub
译者:kunwuz torch.hub.load(github, model, force_reload=False, *args, **kwargs) 从github上加载一个带有预训练权重的模型. ...
最新文章
- 职业高中计算机原理,132-浅议职业高中计算机组成原理教法初探
- 北京阿里云ACE态势感知大屏体验黑客攻击与防御
- 常用Redis命令总结
- POJ - 3263 Tallest Cow(简单差分)
- java判断字符串中是否包含字母
- java必读书籍_最佳5本Java性能调优书籍–精选,必读
- Mplayer后台播放没有声音
- Leetcode-二叉搜索树最近公共祖先
- 值得收藏的数据库基础总结!
- win10桌面搜索不能用的问题
- mysql group by 聚合_浅析MySQL使用 GROUP BY 分组聚合与细分聚合
- JavaSE基础笔记一
- 电力拖动自动控制系统_教授为你解读“电气工程及其自动化”专业类
- idea Process finished with exit code -1073741819 (0xC0000005)
- QT 矢量绘图和非矢量绘图(一)
- 虚拟机 服务器 root,虚拟机切换到root账户
- 《SpringSecurity in Action》四:Session共享下的Session并发控制问题
- 水星mw325r设置无线服务器未响应,水星MW325R无线路由器上网的设置技巧
- 兆骑科创创新创业服务平台,海内外高层次人才引进,活动赛事
- Windows自动恢复报错:无法加载操作系统,原因是关键系统驱动程序丢失或包含错误
热门文章
- (16)Verilog HDL常量:数值表示
- 服务器cpu位置,服务器CPU满载,谁之过?
- 一定质量的封闭气体被压缩后_单螺杆压缩机
- bat 复制文件夹_一个神奇的bat批处理文件,更好的隐藏电脑里的文件或者文件夹...
- 1015. vs项目编译成功INSTALL时
- 1004.ubuntu16.04 安装protobuf
- 文本删除空行_Word的空行、空格、页眉线删不了?8秒一次性处理,教你删掉它们...
- 安徽省第二次计算机水平考试,2006第二次安徽省计算机水平考试试卷(ACCESS).doc...
- oracle字符串使用函数,oracle函数大全-字符串处理函数
- Revit二次开发The symbol is not active