pytorch预测结果的精度、召回率、F1值、准确率计算(简单实现)

本文介绍了如何在PyTorch中计算深度学习模型预测的精度、召回率、F1值和准确率。首先,导入必要的库函数,然后详细说明了图像文件和标签文件的存储格式。接着,提供了读取标签的辅助函数,并定义了计算评估指标的函数。最后,给出了一个完整的实现示例,读者可以根据自己的模型路径进行调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 导入必要的库函数

import os
import json
import torch
from PIL import Image
from torchvision import transforms
# 导入自己的模型
from model_v3 import mobilenet_v3_small

2. 文件存储格式

imgs文件下下是需要预测的图像

label.txt为每幅图对应的标签

### 这个无所谓,能正常读取就行

 3. 标签读取辅助函数

targets_path = "test/label.txt"
    with open(targets_path, 'r') as file:
        targets = file.readlines()

 4. 精度、召回率、F1值、准确率计算函数

# 获取标签
target = int(targets[i])
# 输出结果
output = torch.squeeze(model(img.to(device))).cpu()
# 取出最大值的索引
predict = torch.softmax(output, dim=0)
# 得到数值
predict_cla = torch.argmax(predict).item()
# 0为正类, 1为负类
if predict_cl
### 大模型训练显存不足的解决方案 对于大模型训练过程中遇到的显存不足问题,可以采取多种策略来缓解这一瓶颈。一种方法是利用混合精度训练,在这种模式下,通过使用半精度浮点数(FP16)代替全精度浮点数(FP32),能够有效减少内存占用并加速计算过程[^1]。 另一种常见的优化手段是对模型参数进行梯度累积。具体来说,就是将一次完整的前向传播和反向传播分为多个小批次完成,从而降低每一步所需的临时存储空间需求。这种方法可以在不牺牲最终收敛效果的前提下显著提高可处理的数据量大小[^2]。 此外,分布式训练也是应对大规模神经网络的有效途径之一。借助多台设备或者同一台机器上的多个GPU协同工作,不仅可以分摊庞大的运算任务,还能共享资源以克服单卡显存量有限的问题。在此基础上,还可以考虑采用数据并行、模型并行以及管道并行等方式进一步提升效率[^3]。 最后值得注意的是,一些高级框架和技术也提供了专门针对此场景的功能支持,比如PyTorch中的`torch.utils.checkpoint`模块允许只保存必要的中间状态用于后续回溯,以此节省大量不必要的缓存开销;而TensorFlow则有XLA编译器可以帮助自动调整图结构达到更好的性能表现[^4]。 ```python import torch def train_with_gradient_accumulation(model, optimizer, data_loader, accumulation_steps=4): model.train() for i, (inputs, labels) in enumerate(data_loader): outputs = model(inputs) loss = criterion(outputs, labels) / accumulation_steps loss.backward() if (i + 1) % accumulation_steps == 0: optimizer.step() optimizer.zero_grad() ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值