import torch.nn as nn
import torch.nn.functional as F
# 给自己的神经网络取名字 叫Model
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.conv1 = nn.Conv2d(1, 20, 5)
self.conv2 = nn.Conv2d(20, 20, 5)
def forward(self, x):
# 输入是x
x = F.relu(self.conv1(x))
# 经过卷积后 再经过relu非线性处理 再经过卷积 再经过relu非线性处理
return F.relu(self.conv2(x))
其中 nn.Conv2d:
torch.nn.
Conv2d
(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)
其中,stride表示卷积操作中的步长,kernel是卷积核,kernel_size是卷积核的大小。padding是在图像的上下左右进行填充,in_channels可以根据输入图像有几层则为几。out_channels是根据卷积核的数目分别得到卷积后的输出,叠加之后看有几层。