当前位置: 首页 > news >正文

Python Day41

Task:
1.数据增强
2.卷积神经网络定义的写法
3.batch归一化:调整一个批次的分布,常用与图像数据
4.特征图:只有卷积操作输出的才叫特征图
5.调度器:直接修改基础学习率
卷积操作常见流程如下:

  1. 输入 → 卷积层 → Batch归一化层(可选) → 池化层 → 激活函数 → 下一层
    2.Flatten -> Dense (with Dropout,可选) -> Dense (Output)

1. 数据增强(Data Augmentation)

  • 作用:通过人工扩展训练数据集,提升模型泛化能力,防止过拟合。
  • 常见方法(图像领域):
    • 几何变换:旋转、翻转、缩放、裁剪、平移。
    • 颜色变换:亮度、对比度、饱和度调整。
    • 噪声注入:高斯噪声、椒盐噪声。
    • 高级方法:Mixup、CutMix、AutoAugment(自动搜索增强策略)。

2. 卷积神经网络(CNN)定义写法

以PyTorch为例的典型结构:

import torch.nn as nnclass CNN(nn.Module):def __init__(self, num_classes=10):super(CNN, self).__init__()self.features = nn.Sequential(nn.Conv2d(3, 16, kernel_size=3, padding=1),  # 输入通道3,输出16nn.BatchNorm2d(16),  # BatchNorm层nn.ReLU(),nn.MaxPool2d(2, 2),  # 池化层nn.Conv2d(16, 32, kernel_size=3, padding=1),nn.BatchNorm2d(32),nn.ReLU(),nn.MaxPool2d(2, 2))self.classifier = nn.Sequential(nn.Flatten(),  # 展平多维特征图nn.Linear(32 * 8 * 8, 128),  # 假设展平后大小为32*8*8nn.Dropout(0.5),  # Dropout层nn.Linear(128, num_classes))def forward(self, x):x = self.features(x)x = self.classifier(x)return x

3. Batch归一化(Batch Normalization, BN)

  • 作用:对每个批次的输入进行标准化(均值0、方差1),加速训练并缓解梯度消失。
  • 公式
    [
    \hat{x} = \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} \quad \text{,} \quad y = \gamma \hat{x} + \beta
    ]
    • (\mu_B, \sigma_B):批次均值/方差;(\gamma, \beta):可学习参数。
  • 注意事项
    • 训练与推理时行为不同(推理时使用全局统计量)。
    • 对batch size敏感(小batch可能效果差)。

4. 特征图(Feature Map)

  • 定义:卷积层输出的张量,每个通道对应一个滤波器提取的特征。
  • 特点
    • 空间维度(高/宽)可能因步长或填充改变。
    • 深度维度等于滤波器数量(如nn.Conv2d(16, 32, ...)输出深度32)。

5. 学习率调度器(LR Scheduler)

  • 作用:动态调整学习率以平衡训练速度与稳定性。
  • 常见类型
    • StepLR:每隔固定epoch衰减。
    • CosineAnnealingLR:余弦退火调整。
    • ReduceLROnPlateau:基于验证指标动态调整。
  • PyTorch示例
    optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
    scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.1)
    # 每个epoch调用 scheduler.step()
    

卷积操作标准流程补充

  1. 卷积块(可重复堆叠):

    • 卷积层 → BN层 → 激活函数 → 池化层
      顺序可调,如某些设计将激活置于BN后
  2. 分类头

    • Flatten() → 全连接层(+Dropout)→ 输出层
      现代网络可能用全局平均池化替代Flatten
  3. 扩展设计

    • 残差连接(ResNet):解决深层网络梯度消失。
    • 分组卷积(如MobileNet):减少计算量。

http://www.xdnf.cn/news/768421.html

相关文章:

  • 神经网络与深度学习(第一章)
  • 链式前向星图解
  • 排序算法C语言实现
  • Linux配置DockerHub镜像源配置
  • Qt实现的水波进度条和温度进度条
  • 神经网络中的梯度消失与梯度爆炸
  • cnn训练并用grad-cam可视化
  • 基于遥感图像深度学习的海洋测深
  • 2024年数维杯国际大学生数学建模挑战赛C题时间信号脉冲定时噪声抑制与大气时延抑制模型解题全过程论文及程序
  • 题目 3230: 蓝桥杯2024年第十五届省赛真题-星际旅行
  • [蓝桥杯]约瑟夫环
  • web架构2------(nginx多站点配置,include配置文件,日志,basic认证,ssl认证)
  • 2025年5月24日系统架构设计师考试题目回顾
  • 【RAG 应用的可视化框架】
  • 【C++】类的构造函数
  • 【iOS(swift)笔记-13】App版本不升级时本地数据库sqlite更新逻辑一
  • 软件测评师教程 第2章 软件测试基础 笔记
  • 大数据-275 Spark MLib - 基础介绍 机器学习算法 集成学习 随机森铃 Bagging Boosting
  • 【C++进阶篇】C++11新特性(上篇)
  • 【笔记】在 Clang 工具链中降级 NumPy 到 2.2.4
  • JavaWeb预习(jsp)
  • 【AI智能体】Spring AI MCP 从使用到操作实战详解
  • 手机隐藏玩法有哪些?
  • 从线性方程组角度理解公式 s=n−r(3E−A)
  • Android Studio 配置之gitignore
  • Day43
  • 九(3).引用作为方法别名返回
  • 抖音商城抓包 分析
  • LangChain输出格式化实践:提升测试工程师LLM开发效率的完整指南
  • 类和对象:实现日期类