当前位置: 首页 > news >正文

使用GPU训练模型

1.说明

        本地训练模型可以用CPU和GPU,但是GPU的性能比CPU要好得多,所以如果有独立显卡的,尽量还是用GPU来训练模型。
        使用GPU需要安装Cuda和Cudnn

2.安装Cuda

安装cuda之前,首先看一下显卡支持的cuda版本,在命令行输入如下命令:

nvidia-smi

显示如图:

我这里支持的版本是:12.8

进入官网:https://developer.nvidia.com/cuda-toolkit-archive

找到对应的版本:

点击对应的版本,进入网页,选择你的平台,如图:

软件一共3.2G,安装软件之前,确定软件有VC++环境,不然会失败。
我是装了Visual Studio 2019

装了vc++环境之后就可以开始安装cuda,选择自定义安装,如图:

在选择组件的时候,将CUDA中的Nsight VSE和Visual Studio Integration取消勾选,后选择下一步,即可安装成功,如图:

安装完成之后,检查是否安装成功,输入命令:

nvcc -V

3.安装cudnn

下载地址:cuDNN 9.7.1 Downloads | NVIDIA Developer

下载合适自己的版本

如图:

然后浏览器直接输入地址下载:

https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/windows-x86_64/cudnn-windows-x86_64-9.7.1.26_cuda12-archive.zip

 下载完成之后,然后解压,如图:

然后将所有文件拷贝到某个目录,我这里是:D:\program\cuda,然后设置环境变量:

至此,就安装完成。

编写一个测试代码,看看是否支持CPU。
先装依赖:

pip install torch-2.6.0+cu126-cp312-cp312-win_amd64.whl
pip install torchaudio-2.6.0+cu126-cp312-cp312-win_amd64.whl
pip install torchvision-0.21.0+cu126-cp312-cp312-win_amd64.whl
import torch

# 检查torch是否有CUDA支持,即是否能用GPU
print(torch.cuda.is_available())

# 如果CUDA可用,它还会打印出当前默认的CUDA设备(通常是第一个GPU)
if torch.cuda.is_available():
    print(torch.cuda.get_device_name(0))
print(torch.version.cuda)

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(device)

4.创建测试项目

我们使用YOLO机器学习框架来测试,创建一个python项目,然后安装如下依赖:
GPU版本的torch

pip install torch-2.6.0+cu126-cp312-cp312-win_amd64.whl
pip install torchaudio-2.6.0+cu126-cp312-cp312-win_amd64.whl
pip install torchvision-0.21.0+cu126-cp312-cp312-win_amd64.whl

然后安装ultralytics等基础依赖

pip install ultralytics==8.3.75
pip install pandas==2.2.3
pip install matplotlib==3.10.0
pip install opencv-python==4.11.0.86

然后准备训练数据,如图:

然后编写data.yaml配置文件,如图:

然后编写代码:

from ultralytics import YOLO

# coding:utf-8
# 根据实际情况更换基础模型
#yolov8n.pt 轻量化模型,适合嵌入式设备,速度快但精度略低。
#yolov8s.pt 小模型,适合实时任务。
#yolov8m.pt 中等大小模型,兼顾速度和精度。
#yolov8l.pt 大型模型,适合对精度要求高的任务。
#yolov8x.pt

#基础模型
model_path = '../base_model/yolov8s.pt'
data_path = './data.yaml'


if __name__ == '__main__':
    model = YOLO(model_path)
    # 训练模型
    results = model.train(
        data=data_path,
        epochs=500,  # 训练轮数
        batch=64,  # 批次大小
        device='0',  # 使用nvidia-smi查看gpu的序号,使用 GPU 0,如果有多个 GPU 可以使用 '0,1,2,3'
        workers=0,  # 数据加载工作线程数
        project='runs/detect',  # 保存结果的项目目录
        name='fatigue_detection',  # 实验名称
        imgsz=640  # 图像大小
    )
    model.save('best_fatigue_detection.pt')

如图:

5.测试模型

 

torch-gpu

相关文章:

  • js数据类型检测
  • Linux 常见面试题汇总
  • Baklib一站式企业知识库搭建指南
  • Deepseek首页实现 HTML
  • 连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接
  • 通俗易懂的浏览器事件循环指南(含async/await)
  • Linux提权之计划任务反弹shell提权(十一)
  • 【Viewer.js】vue3封装图片查看器
  • 【时时三省】(C语言基础)结构化程序设计方法
  • 二:前端发送POST请求,后端获取数据
  • Java并发 ThreadLocal 原理(详解)
  • c++中,什么时候应该使用mutable关键字?
  • Bash Shell控制台终端命令合集
  • C语言番外篇(3)------------>break、continue
  • 论文笔记:Autonomy-of-Experts Model
  • watchEffect 里有响应式依赖时并没有自动追踪
  • C++关键字之mutable
  • Tesseract OCR:起源、发展与完整使用指南
  • 多线程篇学习面试
  • 请谈谈 Vue 中的 key 属性的重要性,如何确保列表项的唯一标识?
  • 金融创新破局记:中小微企业转型背后的金融力量
  • 民生访谈|宝妈宝爸、毕业生、骑手……上海如何为不同人群提供就业保障
  • 人民日报:光荣属于每一个挺膺担当的奋斗者
  • 三大猪企去年净利润同比均较大幅度增长,资产负债率齐降
  • 识味顺德︱顺德菜的醉系列与火滋味
  • 体坛联播|皇马上演罢赛闹剧,杨瀚森宣布参加NBA选秀