mamba-yolo模型的深度学习环境配置

news2024/9/26 19:46:16

        本文将介绍如何配置目标检测模型mamba-yolo的深度学习环境

1. 环境要求

  • Python >= 3.9 (本文使用python-3.11)

  • CUDA >= 11.6 (本文使用CUDA-11.8)

  • Pytorch >= 1.12.1 (本文使用torch-2.4.0)

  • Linux(本文使用Ubuntu-22.0.4)

    • 请先确定系统的GLIBC版本大于等于2.32(本文使用2.35), 否则会导致python无法正常import动态链接库(python >= 3.7 import动态链接库需要 GLIBC >= 2.32), 如需查看GLIBC版本可使用以下命令查看:

    ldd --version
    • gcc,具体版本要求未知,本文使用11.4.0 ,可用以下命令查看gcc版本

    gcc --version

2. CudaToolKit安装

2.1 cuda安装

        先打开英伟达CudaToolKit官网:https://developer.nvidia.com/cuda-toolkit-archive ,然后选择cuda11.8(也可以按照自己的需求来选择其他版本,但是要求大于11.6)

        之后按照自己的系统情况进行选择:

        如果当前账户有root权限的话,Installer Type就正常选第一个就好,根据下方给出的提示进行安装即可

         如果没有root权限的话,可以使用第三项runfile的方式进行安装,具体可以参考博客:linux系统非root用户安装cuda和cudnn,不同版本cuda切换_安装多版本cudnn-CSDN博客

2.2 环境变量修改

        打开bash配置文件: 使用文本编辑器打开用户的bash配置文件。对于大多数用户,这个文件通常是~/.bashrc。如果您使用的是root用户,那么配置文件可能是~/.bashrc或者/root/.bashrc。在终端中输入以下命令:

nano ~/.bashrc  # 如果想修改所有用户可以在前面加上sudo

        在打开的.bashrc文件中,使用键盘将光标移动到文件的末尾,添加以下路径在文件最后(注意,具体路径请修改为自己安装路径,代码示例为默认安装路径):

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

        保存并关闭文件: 在nano编辑器中,按下Ctrl + O来保存文件,然后按下Enter确认文件名。接着,按下Ctrl + X退出编辑器,输入y一次,然后回车即可

        使更改生效: 为了让刚才的更改立即生效,需要重新加载.bashrc文件。在终端中执行以下命令:

source ~/.bashrc

        接下来就可以输入:

nvcc -V

        查看是否安装成功即可,正常应输出如下信息:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

3. cuDNN安装

        先打开官网:https://developer.nvidia.com/rdp/cudnn-archive ,然后选择对应版本进行下载(本案例选择v8.9.7-11.x),这里下载需要注册NVIDIA账号

        然后将下载好的压缩包传到linux服务器中,并在终端cd到对应上传目录,然后进行解压:

tar -xvf cudnn**    # **省略部分按tab自动补全

        解压完成后cd进解压文件夹,然后运行以下代码(如果没有root权限,cuda安装目录应当在自己账户目录下,此时以下命令无需sudo命令):

sudo cp -r ./lib/* /usr/local/cuda-11.8(根据你的cuda安装目录进行修改)/lib64/
sudo cp -r ./include/* /usr/local/cuda-11.8(根据你的cuda安装目录进行修改)/include/

        接下来修改权限:

sudo chmod a+r /usr/local/cuda-11.8(根据你的cuda安装目录进行修改)/include/cudnn*
sudo chmod a+r /usr/local/cuda-11.8(根据你的cuda安装目录进行修改)/lib64/libcudnn*

        最后检查是否安装成功:

cat /usr/local/cuda-11.8(根据你的cuda安装目录进行修改)/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

        正常应输出以下信息:

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 7
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

/* cannot use constexpr here since this is a C-only file */

        至此,cuda安装完成

4. Anaconda安装

        这个网上教程一大堆,这里我就只简单说一下。 首先下载安装程序,方法有很多,下面提供两种方法:

  • 前往Anaconda官网(Download Anaconda Distribution | Anaconda )选择linux版本,直接下载

  • 直接使用wget下载:

wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

        之后cd到你的下载目录,直接执行即可:

sh Anaconda3-2024.02-Linux-x86_64.sh

        一直按enter,直到出现选择yes或者no,选择yes,接下来按enter即可

Please answer 'yes' or 'no':'
>>> yes

Anaconda3 will now be installed into this location:
/root/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

这里直接按enter继续

You can undo this by running `conda init --reverse $SHELL`? [yes|no]
[no] >>>

Thank you for installing Anaconda3!

安装完成

5. Conda环境创建和pytorch环境配置

先新建一个conda虚拟环境:

conda create --name mamba python=3.11

激活环境:

conda activate mamba

然后安装pytorch(这是使用pip下载,如需conda下载【conda下载最后得到的包文件名为pytorch,pip是torch】或者安装其他版本,具体命令可以前往Pytorch官网 PyTorch ):

conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0  pytorch-cuda=11.8 -c pytorch -c nvidia

5.1 pytorch构建工具配置修改

先查看mamba-env环境路径

conda env list

然后进入具体环境路径后,打开📁 lib/📁 python3.10/📁 site-package📁 torch(conda下载为pytorch,pip下载为torch)/📁 utils/cpp_extension.py

在CUDA_GCC_VERSIONS和MINIMUM_CLANG_VERSION中添加11.8的版本信息

CUDA_GCC_VERSIONS: VersionMap = {
    '11.0': (MINIMUM_GCC_VERSION, (10, 0)),
    '11.1': (MINIMUM_GCC_VERSION, (11, 0)),
    '11.2': (MINIMUM_GCC_VERSION, (11, 0)),
    '11.3': (MINIMUM_GCC_VERSION, (11, 0)),
    '11.4': ((6, 0, 0), (12, 0)),
    '11.5': ((6, 0, 0), (12, 0)),
    '11.6': ((6, 0, 0), (12, 0)),
    '11.7': ((6, 0, 0), (12, 0)),
    '11.8': ((6, 0, 0), (12, 0)),  # 添加这一行
}

MINIMUM_CLANG_VERSION = (3, 3, 0)
CUDA_CLANG_VERSIONS: VersionMap = {
    '11.1': (MINIMUM_CLANG_VERSION, (11, 0)),
    '11.2': (MINIMUM_CLANG_VERSION, (12, 0)),
    '11.3': (MINIMUM_CLANG_VERSION, (12, 0)),
    '11.4': (MINIMUM_CLANG_VERSION, (13, 0)),
    '11.5': (MINIMUM_CLANG_VERSION, (13, 0)),
    '11.6': (MINIMUM_CLANG_VERSION, (14, 0)),
    '11.7': (MINIMUM_CLANG_VERSION, (14, 0)),
    '11.8': (MINIMUM_CLANG_VERSION, (14, 0)),  # 添加这一行
}

安装packaging包(setup需要):

conda install packaging

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

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

相关文章

【C++】STL标准模板库容器——set

🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 📌关联式容器set(集合)简介 📌set(集合)的使用 🎏set(集合)的模板参数列表 🎏set(集合)的构造函数 🎏set(集合)的迭代…

JavaScript异步编程:async、await的使用

async 和 await 是在 ECMAScript 2017 (ES7) 中引入的特性,用于处理异步操作。它们允许你以一种更加简洁和同步的方式来编写异步代码。 async 函数表示它会返回一个 Promise,而 await 关键字用于等待一个 Promise 解决。 关于 promise 的详细介绍&#…

蜂窝物联网全网通sim卡切网技术方案软硬件实现教程(设备根据基站信号质量自动切网)

01 物联网系统中为什么要使用三合一卡 三合一卡为用户解决了单一运营商网络无法全覆盖的缺陷,避免再次采购的经济成本以及时间成本和因没有信号设备停止工作造成的损失,保证仅需一次采购并提高设备工作效率和入网活跃度。例如下面地区的设备&#xff0…

Spring Web MVC课后作业

目录 1.加法计算器 2.⽤户登录 3.留⾔板 1.加法计算器 (1)需求分析 加法计算器功能, 对两个整数进⾏相加, 需要客⼾端提供参与计算的两个数, 服务端返回这两个整数计算 的结果。 (2)接⼝定义 请求路径: calc/sum 请…

Java框架学习(mybatis)(01)

简介:以本片记录在尚硅谷学习ssm-mybatis时遇到的小知识 详情移步:想参考的朋友建议全部打开相互配合学习! 官方文档: MyBatis中文网https://mybatis.net.cn/index.html 学习视频: 067-mybatis-介绍和对比_哔哩哔…

Linux本地服务器搭建开源监控服务Uptime Kuma与远程监控实战教程

文章目录 前言**主要功能**一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务,如何安装Docker详见: 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址…

docker - maven 插件自动构建镜像(构建镜像:ebuy-docker:v2.0)

文章目录 1、docker服务端开启远程访问2、在pom.xml文件plugins下添加Maven的docker插件3、编写dockerfile文件4、执行maven的打包命令5、查看 镜像 ebuy-docker:v2.06、创建 容器 ebuy-dockerv2.0 上面手动构建镜像的过程比较繁琐,使用Maven的docker插件可以实现镜…

MySQL数据库进阶知识(五)《锁》

学习目标: 一周掌握数据库锁相关知识 学习内容: 一. 概述 介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共…

Word2vec的应用

目录 1.分词 2.模型训练 3.可视化 4.知识点个人理解 pip install gensim -i https://pypi.tuna.tsinghua.edu.cn/simple #若在jupyter notebook中安装: ! pip install gensim -i https://pypi.tuna.tsinghua.edu.cn/simple #导包 import jieba import re import…

一种能够一机两用的源代码保密方案

在数字化时代,企业面临的数据泄露风险日益增加,保护机密数据的安全成为了一项重要任务。SDC沙盒技术作为一种先进的数据保密解决方案,通过创新的沙盒概念,在防泄密领域展现了其独特的价值和作用。 一、SDC沙盒技术简介 SDC沙盒技…

使用ucharts写的小程序页面柱状图上方没有数字

使用uCharts官网 - 秋云uCharts跨平台图表库写的柱状图如何让柱子上放没有数据 更改前 更改后 使用uCharts官网 - 秋云uCharts跨平台图表库 写的小程序图表,无论是柱状图还是折线图添加一个 dataLabel: false, // 不显示数据 九可以实现不显示数据 const opts …

必看!道路运输企业主要负责人和安全生产管理人员考核新动向

必看!道路运输企业主要负责人和安全生产管理人员考核新动向 道路运输企业两类人员#叙后尘 道路运输企业主要负责人和安全生产管理人员报考 交通运输主管部门具体组织实施本行政区域内道路运输企业主要负责人和安全生产管理人员安全考核有关工作,并在…

无网络entos7报错ImportError: /lib64/libm.so.6: version `GLIBC_2.27‘ not found更新glibc

最近在尝试使用sklearn的升级版cuml,因为是一台没有连接互联网的gpu机器,所以构建cuml环境过程很坎坷,需要各种将各种whl包在线下载后上传到服务器中。 当我终于解决完包的互相依赖问题后,在import cuml时候遇到一个错误&#xff…

【线程】线程池

线程池通过一个线程安全的阻塞任务队列加上一个或一个以上的线程实现,线程池中的线程可以从阻塞队列中获取任务进行任务处理,当线程都处于繁忙状态时可以将任务加入阻塞队列中,等到其它的线程空闲后进行处理。 线程池作用: 1.降…

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询…) 文章目录 三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)1. …

2024中国新能源汽车零部件交易会,开源网安展示了什么?

近日,2024中国新能源汽车零部件交易会在十堰国际会展中心举行。开源网安车联网安全实验室携车联网安全相关产品及解决方案亮相本次交易会,保障智能网联汽车“车、路、云、网、图、边”安全,推动智能网联汽车技术突破与产业化发展。 中国新能源…

MySQL InnoDB MVCC数据结构分析

1、概述 MVCC(Multiversion Concurrency Control)多版本并发控制,通过维护不同的版本号,提供一种很好的并发控制技术,这种技术能够使读写操作不冲突,提升并发性能。 MySQL InnoDB存储引擎,在更…

【雅特力AT32】IIC使用指南_附读写EEPROM案例

目录 1.12C接口简介 2.12C接口通信 2.1主机通信流程 2.1.1 主机通信初始化 1>主机时钟初始化 2>主机通信初始化 3>主机 10 bits 寻址的特殊时序初始化 2.1.2 主机通信初始化软件接口 2.1.3 主机发送流程 2.1.4 主机发送流程软件接口 2.1.5 主机接收流程 2.1.6 主机接收…

传输大咖47 | 软件企业文件传输难题?这款FTP替代工具了解一下

随着信息技术的飞速发展,软件企业对数据传输的需求日益增长。虽然传统的FTP(文件传输协议)曾经是企业数据交换的主要力量,但其在许多方面的局限性已经逐渐成为企业发展的瓶颈。接下来,我们将带您讨论FTP的缺点&#xf…

又一个行业被背刺了,AI做服装设计这么简单,谁还需要设计师?

随着人工智能(AI)技术的迅速发展,越来越多的行业开始借助AI的力量实现创新,而服装设计这一传统行业也无法幸免。 在过去,服装设计是创意与手工结合的高门槛行业,需要设计师花费大量时间和精力去构思、打样…