AI环境搭建pytorch+yolo8搭建

AI环境搭建pytorch+yolo8搭建

概念

r 复制代码
Cuda就是英伟达用来操作显卡的,是用c++写的一个应用程式,或者说是库
Pytorch 就是python封装了一组能够操作Cuda的库(c++) 来操作显卡
Yolo就是在pytorch上又套了一层
标题
复制代码
参考配置
python 3.9
显卡P2000
cuda 11.8
torch 2.01

安装步骤1---是否有显卡驱动,可忽略

复制代码
1.安装英伟达显卡版本更新,不是必须步骤,主要是查看版本号,是否适合cuda版本,
也就是说显卡版本决定cuda的版本,cuda版本决定pytorch版本。
验证是否有显卡驱动,可以在cmd窗口执行:
nvidia-smi
如下,表示显卡驱动已经安装
ruby 复制代码
如果有显卡,没有驱动,可以去官方下载,或者升级驱动,官网搜索与显卡匹配的即可
显卡驱动版本升级或安装
https://www.nvidia.cn/drivers/lookup/

安装步骤2---安装对应显卡,所需的cuda

arduino 复制代码
2.需要安装英伟达的cuda驱动程式,来驱动显卡,选择什么版本,它是根据显卡驱动来的。
1.查询历史cuda的版本
https://developer.nvidia.com/cuda-toolkit-archive
2.我选择11.8版本

安装步骤3---安装python的库pytorch框架

perl 复制代码
3.项目中安装pytorch框架,来操作cuda,需要先用python创建一个项目,然后在该项目中安装pytorch包,就可以了。
1.查询历史版本的地址
https://pytorch.org/get-started/previous-versions/
2.找到我的安装命令,不同版本,命令不同
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

代码测试1---在代码中测试一下,pytorch是否支持

python 复制代码
测试pytorch
def main():
    print("PyTorch 环境验证")
    print("=" * 40)
    
    # 1. 检查PyTorch是否安装
    try:
        import torch
        print(f"✓ PyTorch已安装: {torch.__version__}")
    except ImportError:
        print("✗ PyTorch未安装")
        print("安装命令: pip install torch")
        return
    
    # 2. 检查CUDA支持
    if torch.cuda.is_available():
        print(f"✓ CUDA可用: {torch.version.cuda}")
        print(f"  GPU数量: {torch.cuda.device_count()}")
        print(f"  GPU名称: {torch.cuda.get_device_name(0)}")
    else:
        print("○ CUDA不可用 (使用CPU)")
    
    # 3. 简单测试
    try:
        x = torch.randn(2, 2)
        y = torch.randn(2, 2)
        z = x + y
        print("✓ 基本操作正常")
        
        # 如果有GPU,测试GPU操作
        if torch.cuda.is_available():
            x_gpu = x.cuda()
            y_gpu = y.cuda()
            z_gpu = x_gpu + y_gpu
            print("✓ GPU操作正常")
            
    except Exception as e:
        print(f"✗ 测试失败: {e}")
        return
    
    print("\n环境验证完成!PyTorch可以正常使用。")




if __name__ == '__main__':
    main()

安装步骤4---安装yolo

arduino 复制代码
1.yolo的官网-参考安装命令,以及下载模型用的
https://docs.ultralytics.com/zh/
2.安装命令
pip install ultralytics
ruby 复制代码
# 1.下载yolo8的模型
https://docs.ultralytics.com/zh/models/yolov8/#performance-metrics

代码测试2---yolo能不能跑起来

python 复制代码
# 6.测试YOLO代码(AI写)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
YOLO目标检测与OpenCV显示脚本,安装cv2(openCV只是为了显示图片)
import cv2
import os
from ultralytics import YOLO
def main():
    print("YOLO目标检测开始...")
    
    # 检查图片文件是否存在
    image_path = "bus.jpg"
    if not os.path.exists(image_path):
        print(f"错误: 图片文件 {image_path} 不存在")
        print("请将图片文件放在当前目录下,或修改image_path变量")
        return
    
    try:
        # 加载YOLO模型
        print("加载YOLO模型...")
        model = YOLO("yolov8n.pt")
        
        # 显示模型信息
        model.info()
        
        # 进行推理
        print(f"对图片 {image_path} 进行推理...")
        results = model(image_path)
        
        # 获取第一张图片的结果
        result = results[0]
        
        # 在图片上绘制检测框
        annotated_img = result.plot()
        
        # 使用OpenCV显示图片
        cv2.imshow('YOLO检测结果', annotated_img)
        
        # 打印检测信息
        print(f"\n检测到 {len(result.boxes)} 个目标:")
        if result.boxes is not None:
            for i, box in enumerate(result.boxes):
                class_id = int(box.cls[0])
                confidence = float(box.conf[0])
                class_name = model.names[class_id]
                print(f"  {i+1}. {class_name}: {confidence:.2f}")
        
        print("\n按任意键关闭窗口...")
        cv2.waitKey(0)
        cv2.destroyAllWindows()
        
        print("检测完成!")
        
    except Exception as e:
        print(f"错误: {e}")
        print("请确保已安装所需依赖: pip install ultralytics opencv-python")
if __name__ == '__main__':
    main()
相关推荐
Ada's22 分钟前
【目标检测2025】
人工智能·目标检测·计算机视觉
csgo打的菜又爱玩2 小时前
Vue 基础(实战模板与命名指南)
前端·javascript·vue.js
ding_zhikai3 小时前
SD:在一个 Ubuntu 系统安装 stable diffusion Web UI
前端·ubuntu·stable diffusion
不当菜鸡的程序媛3 小时前
Stable Diffusion里面Cross-Attention设计:为啥Q来自图像/噪声,K和V来自文本
人工智能·计算机视觉·stable diffusion
gerrgwg5 小时前
Vue-library-start,一个基于Vite的vue组件库开发模板
前端·javascript·vue.js
你的人类朋友6 小时前
【Node】单线程的Node.js为什么可以实现多线程?
前端·后端·node.js
2401_841495646 小时前
【计算机视觉】基于数学形态学的保留边缘图像去噪
人工智能·python·算法·计算机视觉·图像去噪·数学形态学·边缘保留
iナナ7 小时前
Spring Web MVC入门
java·前端·网络·后端·spring·mvc
驱动探索者7 小时前
find 命令使用介绍
java·linux·运维·服务器·前端·学习·microsoft
开心不就得了7 小时前
自定义脚手架
前端·javascript