pytorch中的nn.Module抽象类的参数

简介: pytorch中的nn.Module抽象类的参数

我们在搭建网络时,通常要继承nn.Module这个模块,并且实现其forward方法,那么这个基类中到底有何属性呢?

def __init__(self):
    self._parameters = OrderedDict()
    self._modules = OrderedDict()
    self._buffers = OrderedDict()
    self._backward_hooks = OrderedDict()
    self._forward_hoods = OrderedDict()
    self.training = True

这个基类有以下属性:

  • _parameters:有序字典,保存用户直接设置的Parameter。例如,对于self.param1 = nn.Parameter(torch.randn(3, 3)),构造函数会在字典中加入一个key为param1、value为对应Parameter的item。self.submodule = nn.Linear(3, 4)中的Parameter不会被保存在该字典中。
  • _modules:子module。例如,通过self.submodel = nn.Linear(3, 4)指定的子module会被保存于此。
  • _buffers:缓存。例如,BatchNorm使用动量机制,每次前向传播时都需要用到上一次前向传播的结果。
  • _backward_hooks:钩子技术,用来提取中间变量。
  • _forward_hoods:钩子技术,用来提取中间变量。
    +training :BatchNorm层与Dropout层在训练阶段和测试阶段采取的策略不同,通过training属性决定前向传播策略。


目录
打赏
0
0
0
0
20
分享
相关文章
Pytorch基本使用—参数初始化
使用Pytorch进行参数初始化教程,重点是Xavier
282 0
机器学习之PyTorch和Scikit-Learn第6章 学习模型评估和超参数调优的最佳实践Part 3
在前面的章节中,我们使用预测准确率来评估各机器学习模型,通常这是用于量化模型表现很有用的指标。但还有其他几个性能指标可以用于衡量模型的相关性,例如精确率、召回率、F1分数和马修斯相关系数(MCC)等。
371 0
机器学习之PyTorch和Scikit-Learn第6章 学习模型评估和超参数调优的最佳实践Part 2
本节中,我们来看两个非常简单但强大的诊断工具,可帮助我们提升学习算法的性能:学习曲线和验证曲线,在接下的小节中,我们会讨论如何使用学习曲线诊断学习算法是否有过拟合(高方差)或欠拟合(高偏置)的问题。另外,我们还会学习验证曲线,它辅助我们处理学习算法中的常见问题。
405 0
机器学习之PyTorch和Scikit-Learn第6章 学习模型评估和超参数调优的最佳实践Part 2
机器学习之PyTorch和Scikit-Learn第6章 学习模型评估和超参数调优的最佳实践Part 1
在前面的章节中,我们学习了用于分类的基本机器学习算法以及如何在喂给这些算法前处理好数据。下面该学习通过调优算法和评估模型表现来构建良好机器学习模型的最佳实践了。本章中,我们将学习如下内容: 评估机器学习模型表现 诊断机器学习算法常见问题 调优机器学习模型 使用不同的性能指标评估预测模型 通过管道流程化工作流
322 0
机器学习之PyTorch和Scikit-Learn第6章 学习模型评估和超参数调优的最佳实践Part 1
使用Optuna进行PyTorch模型的超参数调优
Optuna是一个开源的超参数优化框架,Optuna与框架无关,可以在任何机器学习或深度学习框架中使用它。本文将以表格数据为例,使用Optuna对PyTorch模型进行超参数调优。
248 0

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等