__init__和forward两个方法

LeNet类继承了nn.Module,并且在__init__方法中实现了各个子模块的构建。

LetNet类里面的forward方法——通过调用forward方法来实现子模块的拼接操作。


在构造网络结构是需要继承 nn.Module 类,并重新构造 __init__和forward两个方法,但需要注意的有:
● 一般将网络中具有可学习参数的层(如卷积层、全连接层)放在构造函数 __init__中,当然也可以把不具有参数的层也放在里面;
● 一般把不具有可学习参数的层(如ReLU、dropout、BatchNormanation层)可放在构造函数中,也可不放在构造函数中,如果不放在构造函数__init__里面,则在forward方法里面可以使用nn.functional来代替;
● forward方法是必须要重写的,它是实现模型的功能,实现各个层之间的连接关系的核心。

附加:
所有放在构造函数__init__里面的层的都是这个模型的“固有属性”
在Pytorch中,forward方法是一个特殊的方法,被专门用来进行前向传播。

posted @ 2023-01-07 14:53  辛宣  阅读(180)  评论(0)    收藏  举报