搜索

pdf文档 深度学习与PyTorch入门实战 - 29. MNIST测试

713.39 KB 7 页 1 下载 66 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档展示了如何使用PyTorch进行MNIST数据集的测试,包括计算损失和准确率的方法。通过代码示例,详细介绍了如何利用argmax函数预测标签,并与真实标签进行比较以计算正确率。文档还讨论了测试的频率选择,如每个批量测试或每个epoch测试,并比较了epoch与step的区别。最后,展示了如何计算测试集的平均损失和准确率。
AI总结
# 深度学习与PyTorch入门实战 - 29. MNIST测试总结 ## 核心观点 1. **测试的重要性** 在深度学习中,测试是评估模型性能的关键环节。通过测试可以了解模型在验证集或测试集上的表现,从而判断模型的泛化能力。 2. **Loss与Accuracy的区别** - **Loss(损失)**:衡量模型输出与真实标签之间的差异,用于优化模型。 - **Accuracy(准确率)**:衡量模型预测的正确性,是分类任务中常用的评估指标。 - **注意**:Loss下降并不一定意味着Accuracy一定上升,因此需要同时关注两者。 3. **测试频率** - **按几个批次测试**:适用于实时监控模型表现。 - **按Epoch测试**:适用于全面评估模型在每个训练周期后的表现。 - **Epoch vs Step**: - **Epoch**:一个完整训练周期(所有训练数据经过一次)。 - **Step**:一个训练批次(部分数据)。 4. **测试流程** - **输入处理**:将输入数据展平为一维向量(如MNIST图像从28x28展平为784)。 - **前向传播**:通过网络计算 logits。 - **计算损失**:使用交叉熵损失函数计算损失值。 - **预测标签**:通过Softmax获取概率分布,并使用argmax获取预测标签。 - **计算准确率**:比较预测标签与真实标签,统计正确数目,计算准确率。 5. **测试代码示例** ```python test_loss = 0 correct = 0 for data, target in test_loader: data = data.view(-1, 28 * 28) data, target = data.to(device), target.cuda() logits = net(data) test_loss += criterion(logits, target).item() pred = logits.argmax(dim=1) correct += pred.eq(target).float().sum().item() test_loss /= len(test_loader.dataset) accuracy = 100. * correct / len(test_loader.dataset) print(f"Test set: Average loss: {test_loss:.4f}, Accuracy: {correct}/{len(test_loader.dataset)} ({accuracy:.0f}%)") ``` 6. **总结** - 测试是评估模型性能的重要环节。 - 需要同时关注Loss和Accuracy,避免仅依赖单一指标。 - 测试频率的选择应根据具体任务和需求灵活调整。 - 通过代码实现完整的测试流程,确保准确计算模型表现。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.