首页 > 其他分享 >调用YOLOv8所需的pytorch环境配置

调用YOLOv8所需的pytorch环境配置

时间:2024-09-28 21:54:06浏览次数:7  
标签:调用 torchvision torch YOLOv8 pytorch conda install pip

第一步:创建conda虚拟环境(切记不要“科学上网”)

依赖库的要求Python>=3.8,PyTorch>=1.8.

1. 创建虚拟环境后,首先安装了python=3.10:

conda install python==3.10 

2. 运行pip install ultralytics

PyTorch>=1.8

3. 卸载由于第二步直接安装的组件pip3 uninstall torch torchvision,

根据自己显卡的版本安装对应的pytorch和torchvision,假设选择pytorch2.2版本,那么可以:

conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=12.1 -c pytorch -c nvidia

第二步:下载YOLOv8源代码

YOLOv8模型可从Ultralytics工程中调用,项目网址:Ultralytics:YOLOv8 -Ultralytics YOLO 文档

4. # Install the ultralytics package from PyPI

pip install ultralytics

5. 在命令行中可以直接用yolo 命令来执行各种任务,以目标检测为例,运行下列代码: yolo predict model=yolov8n.pt imgsz=640 conf=0.25 

6. 下载项目后,在pycharm中打开,设置好python interpreter,选择预先搭建好的conda environment

总结:在安装环境和部署项目过程中的bug

1. 运行项目时,遇到RuntimeError: Numpy is not available

这是因为Numpy 版本太高,将现有Numpy卸载

pip uninstall numpy
安装numpy=1.26.4,解决此问题

pip install numpy=1.26.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 执行yolo train和predict等任务时,出现这个错误信息:NotImplementedError: Could not run 'torchvision::nms' with arguments from the 'CUDA' backend.

理解这个错误的原因似乎是在调用CUDA时无法调用nms计算单元?

排查此bug原因是torchvision版本与torch不匹配,如下所示,torch是cuda的,但是torchvision却配的是cpu版本。

pytorch                   2.2.0           py3.10_cuda12.1_cudnn8_0    pyto

torchvision               0.17.0                   pypi_0    pypi

解决方案:到torchvision官网 https://download.pytorch.org/whl/torchvision/ 找到与torch版本对应的torchvision-cuxx-whl,下载到anaconda/env文件夹中。参考https://zhuanlan.zhihu.com/p/589722755

PS. 配置环境用了conda install和pip install的两种方式来安装依赖包,但是在pycharm中选择编辑器时往往出现缺乏xx库的报错,我觉得可能和这些库的链接来源有关,尽量选择conda install方式来统一安装库,避免出现部分库识别不出的情况,特别是这些互相依赖的torch、torchvision库,最后我查了官网上的conda 而不是pip的方式,重新安装了torch(2.4.1)、torchvision(0.19.1)、torchvision(2.4.1)等。

标签:调用,torchvision,torch,YOLOv8,pytorch,conda,install,pip
From: https://blog.csdn.net/weixin_50128498/article/details/142524162

相关文章

  • Python函数的魔法:定义与调用的艺术
    引言:你是否曾被代码困住?想象一下,你正在编写一个复杂的程序,突然间,代码的逻辑变得混乱不堪,像是一团乱麻。你是否曾经想过,为什么有些代码看起来如此简洁,而有些却让人头疼不已?答案往往在于函数的使用。函数不仅是代码的“魔法师”,更是我们编程旅程中的得力助手。在这篇文章中,我们......
  • 基于yolov10的学生课堂行为检测系统,支持图像、视频和摄像实时检测【pytorch框架、pyth
    更多目标检测和图像分类识别项目可看我主页其他文章功能演示:基于yolov10的学生课堂行为检测系统,支持图像、视频和摄像实时检测【pytorch框架、python】_哔哩哔哩_bilibili(一)简介基于yolov10的学生课堂行为检测系统是在pytorch框架下实现的,这是一个完整的项目,包括代码,数据集......
  • 业务系统——钉钉调用接口上传文件报错:Could not find token at index 0
    参考:https://open.dingtalk.com/document/orgapp/initiate-approval使用的是旧版的SDK///<summary>///获取审批钉盘信息///</summary>///<paramname="userId"></param>///<paramname="to......
  • 要求实现一个函数 DoubleToStr(double a,int b,char * str),将参数 a 转化为字符串 str
    sprintf函数:sprintf(str,"%.*f",b,a);:sprintf是一个格式化输出函数,类似于printf,但它将输出写入到字符串中而不是标准输出。"%.*f":#include<stdio.h>//将双精度浮点数a转换为字符串str,小数点后保留b位voidDoubleToStr(doublea,intb,char*str){  //......
  • Pytorch - Install
    https://pytorch.org/get-started/locally/  zzh@ZZHPC:~/zd/Github$python-mvenvzpytorchzzh@ZZHPC:~/zd/Github$cdzpytorch/zzh@ZZHPC:~/zd/Github/zpytorch$sourcebin/activate(zpytorch)zzh@ZZHPC:~/zd/Github/zpytorch$command-vpython/zdata/Git......
  • 鸿蒙(HarmonyOS)实战开发篇——基于Napi调用ArkTS/系统接口
    场景描述:app应用在native侧调用系统库/arkts模块的方法。应用经常会遇到如下的业务诉求:场景一:系统提供了ArkTS接口,但未提供对应的NDK接口,当伙伴使用C++代码实现业务逻辑时,部分系统能力需要依赖系统ArkTS接口;场景二:系统仅提供了ArkTS异步接口,未提供对应的NDK接口,当......
  • pbootcms模板如何调用当前位置面包屑标签
    在PbootCMS中,如果你想在模板中调用当前位置的面包屑导航(Breadcrumb),可以通过特定的标签来实现。以下是具体的实现方法和示例代码:调用面包屑导航标签参数说明separator=*:分隔符,非必填,默认为 >>。indextext=*:首页文本,非必填,默认为“首页”。示例代码假设你希望在模板中......
  • 【赛博炼丹】深度学习软件安装及环境配置:Anaconda、CUDA、cuDNN、PyTorch及PyCharm
    前言建议大伙自己建一个文件夹(不能有中文),专门放深度学习的软件,后续添加环境,比较方便。1.安装Anaconda1.1下载AnacondaAnaconda官网:https://www.anaconda.com清华大学镜像网站:Indexof/anaconda/archive/|清华大学开源软件镜像站|TsinghuaOpenSourceMirror安装A......
  • uniapp开发——使用uni.chooseImage调用摄像头功能
    1.前端调用代码://获取摄像头权限失败的处理asyncfunctionrequestAndroidPermission(permisionID){varresult=awaitpermision.requestAndroidPermission(permisionID)if(result==-1){//被永久拒绝权限"letmsg='您还没有开启摄像头权限,无法拍照,是......
  • pbootcms网站模板首页如何调用指定栏目的子栏目
    在PbootCMS中,调用指定栏目的子栏目可以通过模板标签来实现。下面是一个详细的示例,展示如何在模板首页调用指定栏目的子栏目。示例代码假设你要调用ID为4的栏目下的子栏目,并且最多显示7个子栏目,可以使用以下模板标签:{pboot:navparent="{sort:tcode}"parent=4num=7}<a......