1. 深度学习工具栈与框架

基于PyTorch生态开展工作,使用其核心模块完成不同任务:

  • torch.nn(构建神经网络层与模型)、torch.optim(优化器,如 Adam)、torch.nn.functional(函数式操作,如激活函数、池化)构建模型与训练流程;
  • torch.utils.data.DataLoader实现数据批量加载与多线程加速;
  • torchvision用于图像数据集(CIFAR10)加载与数据增强,结合transforms完成数据预处理。

2. 卷积神经网络(CNN)模型设计

实现了多种 CNN 结构,覆盖从简单到经典的网络设计思路:

  • 自定义 CNN(CNNNetNetLeNet):通过 “卷积层 + 池化层 + 全连接层” 的组合,体现 CNN 的基本结构逻辑(特征提取→特征压缩→分类)。
  • 经典 VGG 模型(VGG):采用 “小卷积核(3×3)+ 多次卷积 + 池化” 的深度网络设计,还通过模块化构建_make_layers方法)和配置列表(cfg)灵活生成网络层;同时引入BatchNorm2d加速训练、提升稳定性。

3. 数据预处理与加载

针对 CIFAR10 图像数据集,完成高效的数据 pipeline:

  • 数据增强:训练集通过RandomCrop(随机裁剪)、RandomHorizontalFlip(随机水平翻转)增加数据多样性,缓解过拟合;
  • 标准化:通过Normalize将图像数据归一化到指定均值和标准差,加速模型收敛;
  • 批量加载DataLoader实现按批次加载数据,并支持多线程(num_workers)提升数据读取效率。

4. 硬件加速与设备管理

通过torch.device自动判断是否存在 GPU(cuda),将模型与数据迁移到 GPU 上,利用硬件加速深度学习计算,提升训练与推理速度。

5. 集成学习(模型集成)

采用投票机制的模型集成策略,提升泛化能力:

  • 训练阶段:同时训练多个模型(如CNNNetNetLeNet),共享优化器并同步更新参数;
  • 推理阶段:对测试数据,收集多个模型的预测结果,通过 “多数表决”(collections.Counter统计最多票数)得到集成模型的最终预测,利用多模型的多样性降低预测误差。

6. 模型训练与评估流程

实现了深度学习标准的 “训练 - 评估” 闭环:

  • 训练循环:遍历 epoch 和 batch,完成 “前向传播→损失计算→反向传播→参数更新” 流程;
  • 评估逻辑:切换模型到eval模式(禁用 BatchNorm、Dropout 等训练特有的层行为),计算单个模型与集成模型的准确率,量化性能表现。

7. 优化与损失函数

  • 优化器:使用Adam优化器,自适应调整学习率,提升训练效率;
  • 损失函数:采用交叉熵损失(CrossEntropyLoss),适配多分类任务的损失计算。

这些技术覆盖了深度学习从 “数据处理→模型设计→训练优化→集成提升” 的全流程,体现了现代深度学习任务的核心实践思路。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐