ubuntu20配置深度学习环境

news2024/12/23 16:26:10

目录

  • 系统环境
  • 安装anaconda
    • 文件的安装
    • anaconda环境配置
      • anaconda换中科大源
      • 常用的anaconda命令
  • 安装显卡驱动
  • 安装CUDA
  • 下载cudnn
  • 安装pytorch
    • 更换conda源
    • 选择对应的pytorch版本进行安装

系统环境

ubuntu20,安装了ros noetic。

参考博客主要有:

  1. https://github.com/afeng616/Build-Cozy-Ubuntu-Environment/blob/master/documents/07-%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83.md
  2. https://blog.csdn.net/weixin_46414430/article/details/129266433

安装anaconda

文件的安装

直接在清华镜像上下载。
我直接下载最新版本,Anaconda3-2024.02-1-Linux-x86_64.sh
在下载的地方,敲命令安装:

bash Anaconda3-2024.02-1-Linux-x86_64.sh

然后按回车,接下来就有很多条款部分,直接按q跳出
会出现下面的画面,输入yes后按回车。
在这里插入图片描述
接着就是设置安装位置,这里我选择默认安装地址。按完回车后就是等待安装的过程。
最后安装完后,会有选项:需不需要初始化,我们填yes,需要初始化。
在这里插入图片描述

anaconda环境配置

安装完后,还需要配置conda,使得conda这个指令能用在任何地方,像python,code这种一样。
主要是去修改~/.bashrc文件。

gedit ~/.bashrc

然后在最后面一行添加anaconda的bin目录,就是前面安装的时候设置的目录。

export PATH="/home/xz/anaconda3/bin:$PATH"

最后就是source这个文件来生效

source ~/.bashrc

这是在终端输入conda,显示一系列帮助信息就说明conda安装成功。

(PS):如果不想新开的终端就在base环境中的话,可以进行设置:

conda config --set auto_activate_base false

anaconda换中科大源

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
conda config --show channels

常用的anaconda命令

# 创建环境
conda create -n xxx python=3.8
# 激活环境
conda activate xxx
# 删除环境
conda remove -n xxx --all
# 查看目前已有的环境
conda env list

安装显卡驱动

最简单方便的方法就是直接在软件更新的附加驱动上直接安装,装完重启即可,如果去安装官网的驱动,操作难度大,可能系统桌面都进不去,反正我之前在ubuntu18系统上安装过一次,但是进不去系统桌面,最后卸载了好不容易才能进系统桌面,所以还是推荐软件更新去安装显卡驱动的方法。
在这里插入图片描述
这里我是安装了535,看其他博客说不要安装server后缀和open后缀的就行,然后重启。
检查是否成功安装,只需要在终端输入nvidia-smi,显示出具体显卡信息即可。

在这里插入图片描述

安装CUDA

安装前的准备:卸载之前残留的CUDA,保证安装前的环境干净

sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" \
 "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" 
sudo apt-get autoremove
  1. 这个主要是看显卡版本去安装,由上面nvidia-smi显示的信息,看到显卡是3090,可以安装最高版本的是CUDA12.2.(我的笔记本显卡3050,同样也是支持最高版本CUDA12.2)
    这里我参考这篇博客:https://blog.csdn.net/weixin_46414430/article/details/129266433。安装CUDA11.6.0.

  2. 下载CUDA文件,下载地址:https://developer.nvidia.com/cuda-toolkit-archive。选择11.6.0版本
    在这里插入图片描述

  3. 瞄的,中文英伟达网站没有CUDA的历史版本,在外网下CUDA11.6.0又容易到99%的时候失败!!!WTF在这里插入图片描述
    实了4,5次,还是失败,最后用浏览器来下载,直接把这个http地址输入到谷歌浏览器中,即可通过浏览器下载,下完了也不会报错。

  4. 安装cuda11.6之前先安装一些依赖的库文件

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  1. 用下载好的文件来进行安装。
sudo sh cuda_11.6.0_510.39.01_linux.run

在选择continue后,在相应位置上填上accept
在这里插入图片描述
注意这个时候需要把这个cuda安装包的驱动取消,按空格取消安装(因为前面已经安装了一个),取消后选择install即可
在这里插入图片描述
最后安装完,报了一个警报,说没安装这个510驱动,这里没所谓。
在这里插入图片描述
6. 配置CUDA的环境
可以在usr/local下看到两个文件夹:cuda-11.6和cuda,cuda其实是安装的时候自动创建的软链接,连接到11.6上
在这里插入图片描述
打开~/.bashrc文件

sudo gedit ~/.bashrc

然后在配置anaconda路径前面加上:(其他博客有说最好是把anaconda的路径放在.bashrc的最末尾)

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

然后source一下

source ~/.bashrc
  1. 验证是否安装成功
    随便新开一个终端,输入:
nvcc --version

显示cuda版本是11.6说明安装成功。

下载cudnn

下载的链接:https://developer.nvidia.com/rdp/cudnn-archive
推荐中文链接:https://developer.nvidia.cn/rdp/cudnn-archive
这里我选择的是cudnn8.4.1 for cuda 11.x的tar版本
在这里插入图片描述
垃圾英伟达还要登陆才能下,又浪费快半个小时!!!!!

  1. 下载完后进行解压:并且将对应的库和头文件移到cuda目录中
tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz

sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 

sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 

sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
  1. 检查cudnn
cat /usr/local/cuda-11.6/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述

安装pytorch

不知道为什么,前面conda配置的源好像连接不上,所以在安装前先换下conda的源。

更换conda源

  1. 先恢复默认源
conda config --remove-key channels
  1. 添加清华镜像源
#添加镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

#显示检索路径
conda config --set show_channel_urls yes

#显示镜像通道
conda config --show channels

选择对应的pytorch版本进行安装

pytorch历史版本的链接:pytorch
这里选择的pytorch版本为v1.12.0。它这边在Linux and Window这里支持CUDA 11.6版本。所以我们选择它。
从链接中找到对应CUDA11.6版本的conda安装命令

  1. 创建一个anaconda环境
conda create -n nerf-pytorch python=3.8
  1. 进入anaconda环境
conda activate nerf-pytorch
  1. 安装pytorch(从官网复制下来的指令)。安装的时候需要注意,因为conda配置了清华源,最好把翻墙的关了,不然有可能下载的时候出问题,出问题了也别慌,重复下面的命令即可。
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch -c conda-forge

上面是通过conda来安装,但是实际装完后,运行脚本训练的时候,会报错,可能是安装了非GPU的pytorch,看到一片博客说最好还是用pip来安装

pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116

注意:最好还是通过pip来安装,能够保证装的是GPU的pytorch。反正我的情况是用conda装,跑训练报错,用pip装,就可以正常跑训练。

最后成功安装
在这里插入图片描述

  1. 检查pytorch是否成功
    在终端输入python,然后import pytorch的包,如果正确找到pytorch的包应该就没问题
    在这里插入图片描述

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

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

相关文章

【Spring】JdbcTemplate

JdbcTemplate 是 Spring 提供的一个 JDBC 模板类,是对 JDBC 的封装,简化 JDBC 代码 也可以让 Spring 集成其它的 ORM 框架,例如:MyBatis、Hibernate 等 使用 JdbcTemplate 完成增删改查 一、环境准备 数据库: 准备…

C++相关概念和易错语法(11)(npos、string的基本使用)

本文主要是分享一些基础的用法和接口,不会涉及迭代器版本,也没有底层概念,主要是保证简单入门和使用。 1.npos string本质上是一个类,里面包含了上百个成员函数,在调用这个头文件后,我们要知道整个类都被…

OpenCV 为轮廓创建边界框和圆(62)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV检测凸包(61) 下一篇 :OpenCV如何为等值线创建边界旋转框和椭圆(62) ​ 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 cv::boundingRect使用 OpenCV 函数 cv::mi…

foobar2000 for Mac:卓越音乐播放器

当您在寻找一款音质卓越、功能丰富的音频播放器时,foobar2000 for Mac无疑是您的首选。它拥有简洁明了的界面设计,易于上手,同时支持多种音频格式,让您无需担心兼容性问题。 foobar2000 for Mac v2.6.4免激活版下载 foobar2000 fo…

P6周人脸识别

一、前期准备 1.设置GPU import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, datasets import os,PIL,pathlib,warningswarnings.filterwarnings("ignore") #忽…

SQL:NOT IN与NOT EXISTS不等价

在对SQL语句进行性能优化时,经常用到一个技巧是将IN改写成EXISTS,这是等价改写,并没有什么问题。问题在于,将NOT IN改写成NOT EXISTS时,结果未必一样。 目录 一、举例验证二、三值逻辑简述三、附录:用到的S…

SpringBoot自定义定时任务

通常,在我们的项目中需要定时给前台发送一些提示性消息或者我们想要的定时信息,这个时候就需要使用定时任务来实现这一功能,实现也很简单,接下来具体来看看吧~ 简单定时任务 首先,你需要在你的启动类上加上开启定时任…

【人工智能Ⅱ】实验5:自然语言处理实践(情感分类)

实验5:自然语言处理实践(情感分类) 一:实验目的与要求 1:掌握RNN、LSTM、GRU的原理。 2:学习用RNN、LSTM、GRU网络建立训练模型,并对模型进行评估。 3:学习用RNN、LSTM、GRU网络做…

Photoshop中图像编辑的基本操作

Photoshop中图像编辑的基本操作 Photoshop中调整图像窗口大小Photoshop中辅助工具的使用网格的使用标尺的使用注释工具的使用 Photoshop中置入嵌入式对象Photoshop中图像与画布的调整画布大小的修改画布的旋转图像尺寸的修改 Photoshop中撤销与还原采用快捷键进行撤销与还原采用…

基于MQTT通信开发的失物招领小程序

项目架构设计 这个项目采用前后端分离的方式,重新设计了两条链路来支撑程序的信息获取和传递 前端的小程序页面再启动页面渲染时,直接通过DBAPI从后端数据库获取信息,直接渲染在小程序中项目中给DBAPI的定位是快速从后端获取信息&#xff0…

信息系统项目管理师0087:组织系统(6项目管理概论—6.2项目基本要素—6.2.6组织系统)

点击查看专栏目录 文章目录 6.2.6组织系统1.治理框架2.管理要素3.组织结构类型6.2.6组织系统 项目运行时会受到项目所在的组织结构和治理框架的影响与制约。为有效且高效地开展项目,项目经理需要了解组织内的组织机构及职责分配情况,帮助自己有效地利用其权力、影响力、能力、…

5分钟速通大语言模型(LLM)的发展与基础知识

✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝…

【编程题-错题集】chika 和蜜柑(排序 / topK)

牛客对于题目链接&#xff1a;chika和蜜柑 (nowcoder.com) 一、分析题目 排序 &#xff1a;将每个橘⼦按照甜度由高到低排序&#xff0c;相同甜度的橘子按照酸度由低到高排序&#xff0c; 然后提取排序后的前 k 个橘子就好了。 二、代码 1、看题解之前AC的代码 #include <…

ttkbootstrap界面美化系列之PanedWindow(七)

在界面设计中经常用PanedWindow控件来对整个界面进行切割布局&#xff0c;让整个界面看上去有层次感&#xff0c;不至于说杂乱无章。在我之前的文章中有对tkinter的该控件做了详细的介绍&#xff0c;链接如下基于Tkinter的PanedWindow组件进行窗口布局-CSDN博客 本文主要是介绍…

Python-VBA函数之旅-oct函数

目录 一、oct函数的常见应用场景 二、oct函数使用注意事项 三、如何用好oct函数&#xff1f; 1、oct函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;神奇夜光杯-CSDN博客 一、oct函数的常见应用场景 oc…

批量抓取某电影网站的下载链接

思路&#xff1a; 进入电影天堂首页&#xff0c;提取到主页面中的每一个电影的背后的那个urL地址 a. 拿到“2024必看热片”那一块的HTML代码 b. 从刚才拿到的HTML代码中提取到href的值访问子页面&#xff0c;提取到电影的名称以及下载地址 a. 拿到子页面的页面源代码 b. 数据提…

Linux理解文件操作 文件描述符fd 理解重定向 dup2 缓冲区 C语言实现自己的shell

文章目录 前言一、文件相关概念与操作1.1 open()1.2 close()1.3 write()1.4 read()1.4 写入的时候先清空文件内容再写入1.5 追加&#xff08;a && a&#xff09; 二、文件描述符2.1 文件描述符 fd 0 1 2 的理解2.2 FILE结构体&#xff1a;的源代码 三、深入理解文件描述…

Vue 开发中的一些问题简单记录,Cannot find module ‘webpack/lib/RuleSet‘

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

【C语言】项目实践-贪吃蛇小游戏(Windows环境的控制台下)

一.游戏要实现基本的功能&#xff1a; • 贪吃蛇地图绘制 • 蛇吃食物的功能 &#xff08;上、下、左、右方向键控制蛇的动作&#xff09; • 蛇撞墙死亡 • 蛇撞自身死亡 • 计算得分 • 蛇身加速、减速 • 暂停游戏 二.技术要点 C语言函数、枚举、结构体、动态内存管…

【Java探索之旅】内部类 静态、实例、局部、匿名内部类全面解析

文章目录 &#x1f4d1;前言一、内部类1.1 概念1.2 静态内部类1.3 实例内部类1.4 局部内部类1.5 匿名内部类 &#x1f324;️全篇总结 &#x1f4d1;前言 在Java编程中&#xff0c;内部类是一种强大的特性&#xff0c;允许在一个类的内部定义另一个类&#xff0c;从而实现更好的…