每天五分钟深度学习框架pytorch:卷积神经网络的搭建

职场   2024-11-26 23:59   浙江  

卷积神经网络

卷积神经网络可以认为是多个卷积层,池化层的堆叠,然后后面接全连接层,pytorch中对这些网络层进行了封装,我们可以直接使用:

卷积层:

class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

参数解析:

in_channels:表示输入通道数

out_channels:表示输出通道数

kernel_size:表示卷积大小

stride:步长

padding:填充

dilation:(扩张)控制kernel点(卷积核点)的间距

grops:卷积核数量

bias:偏执

池化层:

class torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)

参数解析:

kernel_size(int or tuple) :窗口大小可以为tuple,在nlp中tuple更多,(n,1)

stride(int or tuple, optional) :步长。默认值是kernel_size

padding(int or tuple, optional) :输入的每一条边补充0的层数

dilation(int or tuple, optional) :一个控制窗口中元素步幅的参数

return_indices:如果等于True,会返回输出最大值的序号,对于上采样操作会有帮助

ceil_mode:如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作

基于pytorch搭建卷积神经网络

代码解析:

这里有四个Sequential,其中前面三个是卷积层,然后后面一个是全连接层,我们随便拿出一个卷积层,我们来解释一下:

self.layer2=nn.Sequential( nn.Conv2d(16,32,kernel=3), nn.BatchNorm2d(32), nn.ReLU(inplace=True), nn.MaxPool2d(kernel_size=2,stride=2) )

这个表示输入数据的通道数为16,然后卷积核数量为32,也就是输出的通道数为32,然后卷积核的大小为3*3,步长为1(默认),padding为1,不填充(默认)

每天五分钟玩转人工智能
一个人没有梦想和神经网络有什么区别?
 最新文章