- 网络层父类
nn.Module
:Evrey Layer is nn.Module (nn.Linear, nn,Conv2d …) - 具体的,我们在定义自已的网络时:需要继承
nn.Module
,并重新实现__init__
方法: 一般放置网络中具有
可学习参数的层(如全连接层、卷积层等)- 也可放置
不具有
可学习参数的层(如ReLU、dropout 等);or 直接在forward
方法 直接用 nn.functional 来代替 - 除了基础模块,还可以用
nn.Sequential
来定义复合层
- 也可放置
forward
方法:实现各个层之间的连接关系
经典代码示例:
import torch
class MyNet(torch.nn.Module):
def __init__(self):
super(MyNet, self).__init__()
self.conv1 = torch.nn.Conv2d(3, 32, 3, 1, 1)
self.relu1=torch.nn.ReLU()
self.max_pooling1=torch.nn.MaxPool2d(2,1)
self.conv2 = torch.nn.Conv2d(3, 32, 3, 1, 1