- 彩色和灰度图片测试和训练的规范写法:
封装在函数中
由于彩色图(3 通道)和灰度图(1 通道)的输入格式不同,但训练 / 测试的核心逻辑(前向传播、损失计算、指标评估)是通用的,因此需将训练、测试逻辑封装为独立函数,实现 "一次编写、多场景复用"。
- 展平操作:除第一个维度 batchsize 外全部展平
展平操作用于将多维特征转换为一维向量,以便输入全连接层(全连接层仅接受一维输入)。
核心规则:保留第 0 维(batchsize),将后续所有维度展平为一维。
常用实现方式
torch.flatten(input, start_dim=1):从start_dim开始展平;
torch.view(-1, num_features):通过形状变换展平(需手动计算展平后的特征数)。
- dropout 操作:训练阶段随机丢弃神经元,测试阶段 eval 模式关闭 dropout
Dropout是防止过拟合的常用方法,其训练 / 测试阶段的行为不同:
训练阶段:随机丢弃一部分神经元,迫使模型学习更鲁棒的特征;
测试阶段:不丢弃神经元(否则会降低模型性能),但需将所有神经元的输出乘以(1-p),保证输出分布与训练阶段一致。
如何自动切换 dropout 状态?
PyTorch 中通过model.train()和model.eval()自动控制:
model.train():切换到训练模式,启用 dropout;
model.eval():切换到测试模式,关闭 dropout(同时固定 BatchNorm 的均值 / 方差)。
作业:




