深度学习任务
1. “safe return”任务与猫狗识别数据集
- 第一层境界为“safe return”任务及一个名为“猫狗识别”的类别。
- 该数据集形式特殊,图片并非以JPG/PNG格式存储,而是以Numpy数组(ND数组对象)形式在词典文件中保存。
2. 数据加载流程与数据增强
- 数据加载: 数据集分为训练集(data_1至data_5,共五批次)和测试集(test),通过指定路径进行加载。transform负责对数据进行转换和数据增强操作,主要步骤包括:使用transforms.Compose聚合多个操作;将图像转换为tensor格式;并对像素值进行标准化处理。
- 数据查看: 讲解了如何通过反向标准化和通道变换将数据恢复成图像形式,以便于在Matplotlib中可视化查看。提及若遇到报错,通常是由于Anconda版本过低导致。
3. 网络模型架构
- 核心结构: 构建了一个包含卷积层、池化层和多个全连接层的特征提取网络。
- 卷积与池化: 利用卷积层提取图像特征(如减轻卷积核个数从16变为36),池化层(如MaxPool)则降低特征图的空间尺寸。
- 全连接层与展平: 特征图在进入全连接层前需被展平为一维数组。全连接层的数量和神经元数量可以自由设定,通常会逐层递减。
- 输出层: 最后一个全连接层输出的是类别置信度,通过Softmax函数将其转换为概率分布,用于最终的分类决策。
4. 硬件依赖(GPU/PyTorch)
- 强调了使用GPU进行计算的优势。
- 解释了CUDA和cuDNN的必要性,指出这些是加速运算的关键依赖库。
5. 神经网络基础结构
- 回顾了神经网络的标准结构,主要包括卷积层、激活函数、池化层(拉平)以及全连接层(FC)。
- 强调在进入全连接层前,需要将网络的多维输出“拉平”为一维向量。
6. 模型训练与核心概念
- 超参数的重要性: 讨论了在模型训练和项目汇报中,必须明确声明所使用的硬件配置、超参数(如优化器、学习率、批量大小)以及特定的评估标准,以保证结果的可比性和严谨性。
- 轻量级网络: 解释了轻量级网络的概念,其通过大幅降低参数量满足了对算力要求不高场景下的应用,同时仍能保持较高的准确率,是模型优化的一种重要思路。
- 训练过程详解:
- 使用优化器(SGD)和损失函数(交叉熵损失)来调整网络权重。
- 训练过程循环读取数据,通过梯度清零、前向传播、误差计算及反向传播来迭代优化模型。
- 训练中的损失值反映了模型的优化状态,但需注意后期损失可能出现反复波动,不代表算法无效。
7. 模型评估与部署
- 训练完成后,需要进行测试来评估模型的实际效果,得到如准确率、精确率等指标。
- 测试过程与训练类似,通过正向传播获取模型最终的输出结果。