美文网首页python
pytorch中的顺序容器——torch.nn.Sequenti

pytorch中的顺序容器——torch.nn.Sequenti

作者: yuanCruise | 来源:发表于2020-02-10 21:00 被阅读0次
1.torch.nn.Sequential概要

pytorch官网对torch.nn.Sequential的描述如下。



使用方式:

# 写法一
net = nn.Sequential(
    nn.Linear(num_inputs, 1)
    # 此处还可以传入其他层
    )

# 写法二
net = nn.Sequential()
net.add_module('linear', nn.Linear(num_inputs, 1))
# net.add_module ......

# 写法三
from collections import OrderedDict
net = nn.Sequential(OrderedDict([
          ('linear', nn.Linear(num_inputs, 1))
          # ......
        ]))

方式一:
这是一个有顺序的容器,将特定神经网络模块按照在传入构造器的顺序依次被添加到计算图中执行。
方式二:
也可以将以特定神经网络模块为元素的有序字典(OrderedDict)为参数传入。
方式三:
也可以利用add_module函数将特定的神经网络模块插入到计算图中。add_module函数是神经网络模块的基础类(torch.nn.Module)中的方法,如下描述所示用于将子模块添加到现有模块中。

2.Sequential源码分析

先看一下初始化函数init,在初始化函数中,首先是if条件判断,如果传入的参数为1个,并且类型为OrderedDict,通过字典索引的方式利用add_module函数将子模块添加到现有模块中,否则,通过for循环遍历参数,将所有的子模块添加到现有中。

由于每一个神经网络模块都继承于nn.Module,因此都会实现__call__forward函数,所以forward函数中通过for循环依次调用添加到现有模块中的子模块,最后输出经过所有神经网络层的结果。

参考文献:
https://blog.csdn.net/dss_dssssd/article/details/82980222

相关文章

  • pytorch中的顺序容器——torch.nn.Sequenti

    1.torch.nn.Sequential概要 pytorch官网对torch.nn.Sequential的描述如...

  • 模型容器

    容器(Containter) 在Pytorch中提供的模型容器中,有三个常用的模型容器,nn.Sequential...

  • 关联容器

    之前介绍过标准库中的顺序容器,顺序容器是元素在内存中按照一定顺序进行排列的,都是按线性结构进行排列。除了顺序容器外...

  • C++boolan part3_week1

    C++容器的介绍及使用 C++中的容器大致可以分为两个大类:顺序容器和关联容器。顺序容器中有包含有顺序容器适配器。...

  • [C++ Primer Note10] 关联容器

    关联容器和顺序容器的本质区别在于:关联容器中的元素是按关键字来保存和访问的,而顺序容器是按它们在容器中的位置来顺序...

  • (十四)C++篇-关联容器map和set

    关联容器和顺序容器的本质差别在于:关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存...

  • [C++ Primer Note8] 顺序容器

    所谓的顺序容器即元素在顺序容器中的顺序与其加入容器时的位置相对应。标准库还定义了几种关联容器,关联容器中元素的位置...

  • GeekBand STL与泛型编程 -- 2

    1. 关联容器 关联容器与顺序容器有着根本的不同:关联容器中的元素是按照关键字来保存和访问的。与之相对,顺序容器中...

  • 关联容器

    关联容器与顺序容器的本质差别在于:关联容器通过键值(key)存储和读取元素,而顺序容器则通过袁术在容器中的位置存储...

  • C++Primer笔记——第十一章:关联容器

    一、本章学习总结 关联容器和顺序容器有根本的不同:关联容器中的元素是按关键字保存和访问的,顺序容器中的元素是按它们...

网友评论

    本文标题:pytorch中的顺序容器——torch.nn.Sequenti

    本文链接:https://www.haomeiwen.com/subject/pnszxhtx.html