深度学习/联邦学习笔记(六)
卷积神经及相关案例+pytorch

卷积神经网络不同于一般的全连接神经网络,卷积神经网络是一个3D容量的神经元,即神经元是以三个维度来排列的:宽度、高度和深度
卷积神经网络中的主要层结构有三个:卷积层、池化层和全连接层,通过堆叠这些层结构形成了一个完整的卷积神经网络结构。卷积神经网络将原始图片转化成最后的类别得分,其中一些层包含参数,一些层没有包含参数,比如卷积层和全连接层拥有参数,而激活层和池化层不含参数。
构造一个简单的多层卷积神经网络
卷积层
nn. Conv2d()就是PyTorch中的卷积模块了,里面常用的参数有5个,分别是in_channels, out_ channels, kernel size, stride, padding, 除此之外还有参数dilation, groups, bias。 下 面来解释每个参数的含义。
in_channels对应的是输人数据体的深度; out_channels 表示输出数据体的深度; kernel_ size表示滤波器(卷积核)的大小,可以使用一个数字来表示高和宽相同的卷积核,比如kernel_ size=3, 也可以使用不同的数字来表示高和宽不同的卷积核,比如kernel_ size=(3, 2); stride表示滑动的步长; padding=0 表示四周不进行零填充,而padding=1表示四周进行1个像素点的零填充; bias是一一个布尔值,默认bias=True,表示使用偏置; groups表示输出数据体深度上和输人数据体深度上的联系,默认groups=1, 也就是所有的输出和输人都是相关联的,如果groups=2, 这表示输人的深度被分割成两份,输出的深度也被分割成两份,它们之间分别对应起来,所以要求输出和输人都必须要能被groups整除; dilation 表示卷积对于输人数据体的空间间隔,默认dilation1
池化层
nn.MaxPool2d()表示网络中的最大值池化,其中的参数有kernel_size、stride、padding. dilation. return_sindices. ceil_mode.下面解释一下它们各自的含义。
- kernel_ size, stride, padding,dilation之前卷积层已经介绍过了,是相同的含义;
- retun_indices表示是否返回最大值所处的下标默认return_indices=False
- ceil_mode表示使用一些方格代替层结构,默认ceil_mode=False, 一般都不会设置这些参数。
- nn. AvgPool2d()表示均值池化,里面的参数和nn.MaxPool2d() 类似,但多一个参数 count_ include_pad,这个参数表示计算均值的时候是否包含零填充,默认count_ include_pad=True。
一般使用较多的就是nn.MaxPool2d() 和nn .AvgPool2d(),另外PyTorch还提供了一些别的池化层,如nn. LPPcol2d()、nn .AdaptiveMaxPool2d()等
全连接层和激活函数上一章已经介绍过, 接下来构造一个简单的多层卷积神经网络。
from torch import nn
class SimpleCNN(nn.Module):
def __init__(self):
super(SimpleCNN, self).__init__() #b,3,32,32
#将卷积层、激活层和池化层组合在一起构成了一个层结构,定义了3个这样的层结构
layer1 = nn.Sequential() #nn.Sequential()是将网络的层组合在一起
layer1.add_module('conv1',nn.Conv2d(3,32,3,1,padding=1)) #nn.Conv2d()是pytorch中的卷积模块
#b,32,32,32
layer1.add_module('relu1', nn.ReLU(True)) #激活层
layer1.add_module('pool1',nn.MaxPool2d(2,2)) #b, 32, 16, 16
self.layerl = layer1
layer2 = nn.Sequential()
layer2.add_module('conv2', nn.Conv

本文深入探讨了卷积神经网络的基础知识与应用实践,包括卷积层、池化层及全连接层的工作原理,并提供了LeNet、AlexNet、VGGNet等多个经典网络的实现案例。
最低0.47元/天 解锁文章
卷积神经及相关案例+pytorch&spm=1001.2101.3001.5002&articleId=116331370&d=1&t=3&u=d20a2f87fcdc4e7f8e1754aaac032cd3)
1563

被折叠的 条评论
为什么被折叠?



