pytorch工具箱
1. 卷积神经网络核心模块与结构
卷积神经网络主要包括卷积层、全连接层(也称“稠密层”)和激活函数
2. 经典网络模型发展历程
LeNet、AlexNet:
LeNet为早期代表性模型;
AlexNet在此基础上更深、更大,引入了ReLU激活函数、Dropout和数据预处理等创新。
VGG系列: 采用可重复的卷积块(由卷积和池化层组成)来堆叠,以增加网络深度。其中,"更深和更窄"被认为效果更好
ResNet (残差网络): 通过“残差块”的结构,将输入直接传递到输出,保证了信息流和准确性,在加深网络的同时控制了性能下降的风险
目标检测网络演进: 主要划分为双阶段和单阶段。随着应用场景对实时性的要求提高,目标检测模型的目标逐渐从单纯追求高精度转向“快”与“准”的兼顾。YOLO系列因其速度快且精度稳步提升而非常著名
3. 关键概念解析
全连接层: 在缺乏卷积的多层感知机(MLP)中,由于每层节点都与上一层的所有节点相连,因此被称为全连接。但当应用于CNN时,将输入特征与其全部权重相乘后求和得到结果。
4. 模型构成与学习机制
超参数与模型参数: 超参数(如学习率、批量大小、网络深度等)是由用户指定、需要通过搜索或实验找到最优值的参数;而模型参数(如权重、偏置)是在训练过程中通过反向传播算法自动调整,以最小化损失函数的数值
梯度下降与参数调整: 训练过程的核心是梯度下降法,该方法用于迭代地调整网络中的权重和偏置
过拟合与Dropout: 当模型过于复杂(参数过多)而数据简单时会发生过拟合。Dropout作为一种缓解策略,是在训练阶段随机禁用一部分神经元(改变网络结构),从而限制模型对特定模式的过度依赖,使其学习到更具泛化性的特征
5. 深度学习模型构建方式
nn.Module是一个类,适合于定义网络结构较复杂、包含训练状态管理和模块组合的模型。例如,Conv2D、Linear(全连接层)、PReLU等层通常在此处定义
nn.functional更像一个纯函数集合,适合于定义不涉及训练状态管理的层,如激活函数(ReLU, Sigmoid)、池化层(MaxPool2d, AvgPool2d)等
nn.Module更适合卷积、全连接等可训练的层,可以方便地使用Sequential类按顺序组合多层,并能自动处理训练/测试阶段的状态切换(如Dropout概率)
nn.functional更适合激活函数、池化层等函数式操作,需要开发者手动管理权重和偏置
模块容器: 提出了模块和容器的概念,允许将一组关联的层组织成一个更大的模块单元,这在构建像ResNet这样的大型网络时非常有用
6. 关键概念辨析
权重(Weights/Biases):决定了输入信号对输出的重要性
偏置(Bias)则可以在没有输入信号的情况下对输出产生影响
“权重”特指卷积核里的数值
通道数(Channels): 图像中的“通道”对应于颜色分量(如灰度图的1通道,RGB图的3通道)或滤波器数量。在图像处理中,通道是独立于空间位置的信息维度。