贡献者: xzllxls
卷积神经网络(简称卷积网络,Convolutional Neural Networks, CNN)是指那些至少有一层为卷积层的神经网络[1],卷积网络是一类最广泛使用的基本神经网络架构。卷积层(Convolutional Layer)是用卷积运算代替一般矩阵乘法运算的网络层。
卷积神经网络与以往的传统神经网络,比如全连接网络,有很多相似的地方。它们都有数据输入和输出,通常具有中间隐含层。在深度学习中,卷积网络的隐含层数量往往较多。卷积操作主要考虑相邻神经元之间的关系。由于使用卷积操作,卷积网络与全连接网络相比,参数数量大大减少。而此一特性恰好可以适用于图像处理。因为,在图像中,通常距离接近的像素之间具有较强的关系,而距离较远的像素之间可能没有较大的关系。
由于在实际应用中,大多数图像是二维数据,因为二维卷积网络最为常用。二维卷积层有多个超参数。一个二维卷积层的输入为一个矩阵,其宽为
输入和输出的超参数之间有如下关系:
有些应用场景,所须要处理的数据是三维图像块,此时可以使用三维卷积网络。三维卷积层的超参数如下:输入为一个矩阵,其宽为
输入和输出的超参数之间有如下关系:
当前流行的深度学习开发框架都有相应的编程接口,能够很方便的构建卷积网络模型。 你如果使用的是 TensorFlow v2.x 版本,可以采用以下函数来建立一个二维卷积层:
该函数的参数主要是:input 是输入张量,filters 是过滤器(即卷积核)的个数,strides 表示的是步长,padding 表示的是补零方式,data_format 表示的是数据格式,dilations 表示的是升采样和降采样率。其中 data_format 数据格式参数有两个取值:你如果使用的是 PyTorch,可以采用下面的代码来建立二维卷积层:
这是一个封装好的二维卷积层类,可以通过新建一个 Conv2d 对象来建立一个 Pytorch 的二维卷积层。该类的主要参数有:in_channels 是输入数据的通道数,out_channels 是输出结果的通道数,kernel_size 是卷积核尺寸,stride 是步幅,padding 是补零数量,dilation 是膨胀方式,groups 是分组数,bias 是偏置,padding_mode 是补零方式,device 是所采用的计算设备,可以是 CPU,也可以是 GPU,dtype 是数据类型。参考文献:
友情链接: 超理论坛 | ©小时科技 保留一切权利