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()