ubuntu18.04复现yolo v8环境配置之CUDA与pytorch版本问题以及多CUDA版本安装及切换

news2024/9/25 9:37:46

最近在复现yolo v8的程序,特记录一下过程

环境:ubuntu18.04+ros melodic

小知识:GPU并行计算能力高于CPU—B站UP主说的

Ubuntu可以安装多个版本的CUDA。如果某个程序的Pyorch需要不同版本的CUDA,不必删除之前的CUDA,可以实现多版本的CUDA切换

一、查看当前PyTorch使用的CUDA版本:

python -c "import torch; print(torch.version.cuda)"

注意:sudo ln -sf libcudnn.so.8.0.5 libcudnn.so.8
1.需要进入conda环境
2.进入conda环境命令:

conda activate ****

3.查看conda环境命令:

conda env list

4.卸载指定conda环境:

conda remove -n  需要删除的环境名 --all

5.创建conda环境:

conda create -n [your_env_name] python=[X.X]2.73.6)
#eg:conda create -n django_env python=3.6

二、假设ubuntu系统已经安装了CUDA,此时需要重新安装另外一个版本(如果你是第一次安装CUDA也没关系,重复下面步骤两次,选择不同的CUDA版本即可)。进入cuda官网,选择需要的版本。

原因:为什么如此麻烦下载多个版本的CUDA呢?因此我们在复现别人代码时,都会看到类似的要求:
Pip install the ultralytics package including all requirements in a Python>=3.8 environment with PyTorch>=1.8.
不同程序需要不同版本的python和pytorch,而pytorch和CUDA之间有一定的对应关系,如果不按要求安装,会造成后续报错,无法复现他人的程序。pytorch和CUDA的对应关系网站:
https://pytorch.org/get-started/previous-versions/

CUDA官网下载:https://developer.nvidia.com/cuda-toolkit
在这里插入图片描述

注意:官网页面显示的是最新版本的cuda,点击Resources中的Archive of Previous CUDA Releases,选择之前的版本,例如我这里选择的是CUDA Toolkit 11.1.1 (October 2020), Versioned Online Documentation
点击CUDA Toolkit 11.1.1即可

在这里插入图片描述
按照下图进行选择Linux—x86_64—Ubuntu—18.04—runfile(local)

在这里插入图片描述
下载方法可以参考我另外一篇博客:ubuntu系统配置CUDA和cuDNN

大致流程如下

安装:复制https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run 到另外一个网页进行下载。

使用如下命令安装

sudo sh cuda_11.1.1_455.32.00_linux.run

后面的步骤为:

1. Q:Existing package manager installation of the driver found. It is strongly    │
│ recommended that you remove this before continuing.                          │
│ Abort                                                                        │
│ Continue
A:Continu

2. Q:Do you accept the previously read EULA?(accept/decline/quit):
A:accept  # 接受协议
3.Q:
│ CUDA Installer                                                               │
│ - [X] Driver                                                                 │
│      [X] 455.32.00                                                           │
│ + [X] CUDA Toolkit 11.1                                                      │
│   [X] CUDA Samples 11.1                                                      │
│   [X] CUDA Demo Suite 11.1                                                   │
│   [X] CUDA Documentation 11.1                                                │
│   Options                                                                    │
│   Install   
A:
#注意根据提示:[ ]中没有X的即不选择,[X] 表示选择安装,因为已经提前安装了显卡驱动,所以把显卡驱动的安装选项取消掉:
#只有CUDA Toolkit 11.0是必选项,其他可选可不选
# Install进入下一步
4.Q: A symlink already exists at /usr/local/cuda. Update to this installation?    │
│ Yes                                                                          │
│ No   
A:N0,选择no,否则会创建一个软连接覆盖之前那个/usr/local/cuda

至此CUDA11.1安装成功

cuda版本切换和环境变量设置

1、在 ~/.bashrc 文件中设置cuda的环境变量内容如下,这样是可以做到cuda版本切换的,通过更换软连接方式:

gedit ~/.bashrc
添加环境变量,在~/.bashrc的最后添加以下内容

export PATH=/usr/local/cuda/bin:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda

保存文件,然后运行命令:
source ~/.bashrc

安装后,在/usr/local路径下,通过ls命令查看是否存在新安装的CUDA目录:
在这里插入图片描述可以看到有之前安装的cuda-11.0和新安装的cuda-11.1

三、安装对应的cuDNN
安装新的版本的CUDA后,还要安装对应的cuDNN。
1、首先下载对应版本的cuDNN
百度搜索cuDNN官网,下载CUDA对应版本的cuDNN

https://developer.nvidia.cn/rdp/cudnn-archive

我下载的是Download cuDNN v8.0.5 (November 9th, 2020), for CUDA 11.1

在这里插入图片描述

此处下载:

cuDNN Library for Linux (x86_64)

2、cd到cudnn压缩包所在的文件夹下进行解压等操作:

tar -zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.1/include/ 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64/
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn.h /usr/local/cuda-11.1/lib64/libcudnn*

cd /usr/local/cuda-11.1/lib64/
sudo ln -sf libcudnn.so.8.0.5 libcudnn.so.8

注意:这里cuda-后面的数字根据自己的版本号进行个修改,不知道的话可以Tab补全

四、CUDA版本的切换

1、删除原版本的cuda软连接

sudo rm -rf /usr/local/cuda

2、建立新的指向cuda-11.1的软连接

sudo ln -s /usr/local/cuda-11.1 /usr/local/cuda

3、重新查看当前CUDA版本

cd /usr/local/
stat cuda

在这里插入图片描述
五、安装yolo v8所需的pytorch
前几步已经安装好了cuda和cudnn,这里下载对应的pytorch==1.8.0
cuda和pytorch版本关系网址:https://pytorch.org/get-started/previous-versions/
a.创建yolov8的conda环境

conda create -n yolov8 python=3.8

b.进入yolov8的conda环境

conda activate yolov8

c.下载pytorch及对应的torchvision、torchaudio、cudatoolkit等

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge

注意:此时报错

/ WARNING conda.core.envs_manager:register_env(50): Unable to register enviroment. Path not writable or missing.

在这里插入图片描述解决办法:这是一个conda新建虚拟环境的权限问题,给予主目录下anaconda3文件权限即可(在主目录下打开终端),执行以下命令。

sudo chown -R dlut anaconda3

其中:dlut是我电脑的名字,根据实际情况修改。

在这里插入图片描述
回到之前的终端,重新执行

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge

在这里插入图片描述此时,显示了yolov8的conda环境已经成功配置,执行以下命令即可查询到pytorch对应的cuda版本。

python -c "import torch; print(torch.version.cuda)"

显示的是CUDA 11.1。

终于搞定了,完结撒花~~ 接下来正式安装及运行yolov8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我是如何使用Spring Retry减少1000 行代码

使用 Spring Retry 重构代码的综合指南。 问题介绍 在我的日常工作中,我主要负责开发一个庞大的金融应用程序。当客户发送请求时,我们使用他们的用户 ID 从第三方服务获取他们的帐户信息,保存交易并更新缓存中的详细信息。尽管整个流程看起来…

APT60DQ20BG-ASEMI新能源功率器件APT60DQ20BG

编辑:ll APT60DQ20BG-ASEMI新能源功率器件APT60DQ20BG 型号:APT60DQ20BG 品牌:ASEMI 封装:TO-3P 恢复时间:>50ns 正向电流:60A 反向耐压:200V 芯片个数:2 引脚数…

Springboot+dynamic-datasource+Druid数据库配置加密

Springbootmybatis-plusdynamic-datasourceDruid数据库配置加密 文章目录 0.前言1. 动态添加移除数据源2.基础介绍3. 使用步骤示例简单方式,使用默认的加密1. 使用下面 工具类输出,加密后的密码1. 将上面加密后的密码配置到配置文件中如果使用的默认key…

完全免费的GPT,最新整理,2023年8月24日,已人工验证,不用注册,不用登录,更不用魔法,点开就能用

完全免费的ChatGPT,最新整理,2023年8月24日,已人工验证, 不用注册,不用登录,更不用魔法,点开就能用! 第一个:网址地址统一放在文末啦!文末直达 看上图你就能…

基于ssm的共享客栈管理系统源码和论文

基于ssm的共享客栈管理系统源码和论文058 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。…

ORB-SLAM2算法10之图像关键帧KeyFrame

文章目录 0 引言1 KeyFrame类1.1 构造函数1.2 成员函数1.3 关键帧之间共视图1.3.1 AddConnection1.3.2 UpdateBestCovisibles1.3.3 UpdateConnections1.3.4 EraseConnection1.3.5 SetBadFlag 1.4 地图点1.5 生成树 2 KeyFrame用途 0 引言 ORB-SLAM2算法7详细了解了System主类和…

机器学习实战之模型的解释性:Scikit-Learn的SHAP和LIME库详解

引言:机器学习模型的“黑箱”困境 机器学习模型的崛起让我们惊叹不已!不论是预测房价、识别图片中的猫狗,还是推荐给你喜欢的音乐,这些模型都表现得非常出色。但是,有没有想过,这些模型到底是如何做出这些决…

STM32 F103C8T6学习笔记13:IIC通信—AHT10温湿度传感器模块

今日学习一下这款AHT10 温湿度传感器模块,给我的OLED手环添加上测温湿度的功能。 文章提供源码、测试工程下载、测试效果图。 目录 AHT10温湿度传感器: 特性: 连接方式: 适用场所范围: 程序设计: 设…

大模型技术实践(二)|关于Llama 2你需要知道的那些事儿

在上期文章中,我们简要回顾了Llama模型的概况,本期文章我们将详细探讨【关于Llama 2】,你需要知道的那些事儿。 01-Llama 2的性能有多好? 作为Meta新发布的SOTA开源大型语言模型,Llama 2是Llama模型的延续和升级。Ll…

免费的png打包plist工具CppTextu,一款把若干资源图片拼接为一张大图的免费工具

经常做游戏打包贴图的都知道,要把图片打包为一张或多张大图,要使用打包工具TexturePacker。 TexturePacker官方版可以直接导入PSD、SWF、PNG、BMP等常见的图片格式,主要用于网页、游戏和动画的制作,它可以将多个小图片汇聚成一个…

java八股文面试[java基础]——CGLIB动态代理与JDK动态代理

CGLIB CGLIB简介: 什么是CGLIB CGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端&#xff…

iPhone 15预计在A16仿生芯片上运行,性能将有何提升?

苹果最新的移动芯片A17仿生芯片无疑让人兴奋不已,该芯片将成为今年一些iPhone 15机型的驱动力。A17基于3nm处理器,这是第一款提出这一主张的移动硅,由于其更紧凑的尺寸,它有望在性能和能效方面都有所提高。今年秋天买一部A17供电的…

【Java架构-包管理工具】-Maven私服搭建-Nexus(三)

本文摘要 Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven私服搭建-Nexus 文章目录 本文摘要1. Nexus安装…

爬虫逆向实战(二十)--某99网站登录

一、数据接口分析 主页地址:某99网站 1、抓包 通过抓包可以发现登录接口是AC_userlogin 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”可以发现txtPassword和aws是加密参数 请求头是否加密? 无响应是否加密? 无…

Win11本地安装Ubuntu 22.04 双系统简易教程

1.制作启动U盘 首先找到一个硬盘容量不小于4G的空U盘,需要对其进行格式化。 然后下载Ubuntu 22.04的iso文件到本地。 Ubuntu 22.04.1 LTS 中国地区下载链接 下载 UltraISO并制作启动U盘 UltraISO的下载地址 下载免费试用版 选择安装地址,无脑下一步…

Error running ‘FileApp‘: Command line is too long. Shorten command line for

报错如下 Error running FileApp: Command line is too long. Shorten command line for 解决方案如下: 打开运行配置 点击上面,默认是收起来的,点击下,下面选择标注的红色的, 重新运行,可以正常启动了

首发!2025年超500万辆规模,揭榜「融合泊车」TOP10玩家

作为行泊一体赛道关键的一环,融合泊车(基于全景环视超声波雷达)及后续的高阶泊车方案再次成为行业关注的焦点。 除了部分头部车企自研之外,第三方供应商的市场机会也在扩大。一方面,泊车厂商也在拓展行泊一体方案&…

ChatGPT⼊门到精通(1):ChatGPT 是什么

⼀、直观感受 1、公司 OpenAI(美国) 2、官⽅⽹站 3、登录ChatGPT ![在这里插入图片描述](https://img-blog.csdnimg.cn/26901096553a4ba0a5c88c49b2601e6a.png 填⼊帐号、密码,点击登录。登录成功,如下 3、和ChatGPT对话 开始…

专题-【稀疏矩阵的三元组存储】

三元组存储表示: 列序递增转置法:

计算机竞赛 基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习

文章目录 0 前言1 课题介绍2 算法原理2.1 算法简介2.2 网络架构 3 关键代码4 数据集4.1 安装4.2 打开4.3 选择yolo标注格式4.4 打标签4.5 保存 5 训练6 实现效果6.1 pyqt实现简单GUI6.3 视频识别效果6.4 摄像头实时识别 7 最后 0 前言 🔥 优质竞赛项目系列&#xf…