pytorch——nn.Module类

nn.Module

nn.Module类是所有网络结构层次的父类。

当你要实现一个自己的层的时候,必须要继承这个类。

而当我们使用一些现有的层,比如说线性层、卷积层的时候,它其实也是继承自nn.Module,只不过这个类因为使用的非常广泛 ,所以pytorch官方已经写好了

当我们自己实现类的话,必须继承自nn.Module,并且在init中完成初始化的步骤和forward中完成计算图的前向构建的过程

pytorch——nn.Module类_第1张图片


 

1、every layer is nn.Module

pytorch——nn.Module类_第2张图片这些都是继承自nn.Module的类

nn.Module中提供了大量的现成的一些神经网络计算的模块

pytorch——nn.Module类_第3张图片

使用这些层非常方便,我们只需要调用一些初始化函数,然后再调用.call方法来调用其forward函数就可以使用它的一些功能

 

2、nn.sequential()用作容器Container

nn.sequential(), 一个有序的容器,神经网络模块将按照在传入构造器的顺序依次被添加到计算图中执行

keras中也有类似的类,tensorflow中没有


nn.sequential()本身也是一个nn.Module类

pytorch——nn.Module类_第4张图片

 

3、parameter管理

使用nn.Module的话,它就会对你神经网络的内部参数进行一个有效的管理

pytorch——nn.Module类_第5张图片

pytorch——nn.Module类_第6张图片

 

 

4、modules管理

直系子节点叫children

所有的节点加载一个叫modules

pytorch——nn.Module类_第7张图片

 

 

 

 

 

 

你可能感兴趣的:(pytorch——nn.Module类)