PyTorch随笔 - Sequential 和 ModuleList 的简要介绍
module.py
Module Class,继承于torch.nn.Module
train()函数:train(mode=True),当前self.training=True,所有子模块children,都设置training=True
__init__
,设置self.training参数,子类会使用training参数Dropout源码,Dropout -> _DropoutNd -> Module、BatchNorm源码,都使用training模式
BN: Buffers are only updated if they are to be tracked and we are in training mode.
super(_DropoutNd, self).__init__()
eval()函数:train(mode=Fale)
requires_grad_()
:当前模型的所有参数,module的函数,和parameter的函数,参数计算梯度zero_grad()
:调用优化器的zero_grad()
,将所有的参数的梯度都清0,避免梯度累积,优化器设置zero_grad,不需要调用模型__repr__()
:魔法函数,string的表示,名称+模块描述__dir__()
:attrs、parameters、modules、buffers、keys,返回所有键值
module.py,Module Class的源码
container.py
- Container已经过期
- Sequential(Module),有序的,直接传入Module的实例,或传入OrderedDict(),包含键值,最常用。
- 或者传入键值,或者键值为默认idx递增序列
s = torch.nn.Sequential(torch.nn.Linear(2,3), torch.nn.Linear(3,4))
s._modules
OrderedDict([('0', Linear(in_features=2, out_features=3, bias=True)),('1', Linear(in_features=3, out_features=4, bias=True))])
- forward(),input输入module,输出input,循环连续处理input
- ModuleList(Module),所有子module都放在list中,存放module的列表
- 将modules添加到ModuleList中,insert或append函数,比list拥有更多的module父类的方法
- ModuleDict(Module),可以通过key去访问不同的module,本身是一个dict,又是一个module,可以用于module的子module
- ParameterList(Module),把parameter类型参数放入列表中,mm = matrix multiplication,矩阵乘法
- ParameterDict(Module),同上
- Module <-> Parameter,都是container,容器,List和Dict只有存放,没有forward功能,只有Sequential包含forward功能
PyTorch随笔 - Sequential 和 ModuleList 的简要介绍相关推荐
- A brief introduction to weakly supervised learning(简要介绍弱监督学习)
文章转载自http://www.cnblogs.com/ariel-dreamland/p/8566348.html A brief introduction to weakly supervised ...
- ILSVRC2012数据集(分类部分)简要介绍和初步处理
ILSVRC2012数据集(分类部分)简要介绍和初步处理 简介 即大名鼎鼎ImageNet2012竞赛的数据集,在图像分类数据集中属于最常用的跑分数据集和预训练数据集. 主要内容可以参考ILSVRC2 ...
- Hadoop学习笔记一 简要介绍
Hadoop学习笔记一 简要介绍 这里先大致介绍一下Hadoop. 本文大部分内容都是从官网Hadoop上来的.其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了.我的这一 ...
- 数据结构的简要介绍:图形如何工作
by Michael Olorunnisola 通过Michael Olorunnisola 数据结构的简要介绍:图形如何工作 (A Gentle Introduction to Data Struc ...
- R语言效用分析 ( 效能分析、Power analysis)、除了pwr包之外还有其它包、例如、基因研究中的效能分析、MBESS包可用于各种形式的效能分析和最少样本量确定、其他效用分析包的简要介绍
R语言效用分析 ( 效能分析.Power analysis).除了pwr包之外还有其它包.例如.基因研究中的效能分析(power analysis).MBESS包可用于各种形式的效能分析(power ...
- 简要介绍一下贝叶斯定理( Bayes‘ theorem)
简要介绍一下贝叶斯定理( Bayes' theorem) 在引出贝叶斯定理之前,先学习几个定义: 条件概率(又称后验概率)就是事件A在另外一个事件B已经发生条件下的发生概率.条件概率表示为P(A|B) ...
- 为什么pytorch mode = sequential() 为何model(input)这样调用就直接执行了forward
pytorch mode = sequential() 为何model(input)这样调用就直接执行了forward https://www.cnblogs.com/ailitao/p/117875 ...
- 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)
各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言) 总结 a.一个语言或者一个东西能火是和这种语言进入某一子行业的契机有关.也就是说这个语言有没有解决社会急需的问题. ...
- [翻译]敏捷软件开发 一 之简要介绍
敏捷软件开发一之简要介绍 原则.模式与实践是重要的,但是这三个要素都要由人来使得它们协同工作.正如Alistair Cockburn所说:"一个成功的项目,过程与技术永远都是排第 ...
最新文章
- TCP三次握手,四次分手
- 【原创】POSTGRESQL 分区表初次体验
- tar -P参数含义
- Gradle常用配置
- 外国人怎么看祖冲之量子计算机,我国“祖冲之号”量子计算机再次刷新纪录:1.2 小时完成超算 8 年计算量...
- 苹果电脑删除软件_5款Mac查杀恶意流氓软件,防护你的MacOS电脑,随时清理优化更加安全!...
- Spring的事务注解@Transactional 出现的6种失效场景
- centos7中安装matlab,centOS7安装matlab2014a
- AD9361 介绍 (上)
- oki5530sc打印错误_四通OKI5530常见故障分析
- 【通讯录自动导入】txt格式转vcf格式
- MC开服教程2:材质包法自定义唱片音乐
- 陈莉君linux操作系统,Linux操作系统原理与应用(陈莉君)学习笔记.pdf
- Android红外线遥控
- qt线程如何接收linux信号,Linux-Qt使用QThread多线程isRunning标志量问题
- 【数据结构】单链表逆序
- 游戏服务器中pvp、pve、rppvp、ffa-pvp的含义
- PTA乙级-1061 判断题-C语言版
- Python数据结构之二——tuple(元组)
- 机器学习基础学习笔记【二】