双系统Ubuntu22.04深度学习环境配置与踩坑记录

双系统Ubuntu22.04深度学习环境配置踩坑记录

  • 前言
  • 目录
    • 相关版本
    • 主要参考教程
    • Ubuntu安装
    • Nvidia和CUDA安装
      • 踩坑经历
      • 官网安装所遇问题
    • cuDNN安装
    • Anaconda安装
    • Pytorch安装与验证
      • 创建Pytorch环境
      • 下载及验证
    • Tensorflow安装与验证
      • 验证gpu时出现报错
    • Pycharm安装与启动
  • 结语

前言

大创项目要用linux深度学习。新手小白一点点摸索装ubuntu配置环境。(Windows真的比ubuntu友善太多了)中途遇到很多问题,网上解决方法参差不齐,且适用的方法很难找,特此记录一下,希望能帮到配置环境的朋友

注:本人用了所以各种下载速度还行,如果各位连不上外国服务器的话可以把源换成国内镜像

目录

相关版本

本人最后配置的环境为:

  1. NVIDIA驱动 :510.60.02 (在终端输入nvidia-smi (注意这里没有空格))

  2. CUDA:11.5(在终端输入 nvcc -V (注意这里有空格))
    双系统Ubuntu22.04深度学习环境配置与踩坑记录_第1张图片

  3. cuDNN双系统Ubuntu22.04深度学习环境配置与踩坑记录_第2张图片

  4. Pytorch:1.11.0 配置环境时python为3.9.12

  5. Tensorflow:2.8.0 配置环境时设置python为3.9.1

主要参考教程


主要参考文章和视频资源有:

Bilibili
Windows 和 Ubuntu 双系统从安装到卸载 up主:机器人工匠阿杰
CSDN
Ubuntu22.04 Python 深度学习环境配置记录 作者:Heine_
避免繁琐步骤,在Ubuntu22.04安装cuda、cudnn及pytorch 作者:Teliq
YouTube
网易云课堂《深度学习与TensorFlow2入门实践》作者:味道

Ubuntu安装

Ubuntu安装可参考上面b站up视频,以下问题如遇到可以注意一下。

  1. 注意制作U盘启动盘时,视频中将刻进U盘用的是Win32DiskImager,这里建议用rufus(这一步有点久远忘了出什么问题了,好像是U盘安装时识别不了)
    若U盘有安全锁可以下载DiskGenius把U盘强制格式化(记得先备份好数据)
  2. 注意自己电脑的bios设置,本人用的联想拯救者R7000-2020,开机时按F2进入bios模式,安装时要设置secure root(具体操作太久了忘了,可以自行搜索教程)
  3. 注意分区设置,本人用第一方案分区(homeroot同时存在)时由于安装NVIDIACUDA时默认路径下到urs,到后面内存不够(也有一部分原因是我乱装了)root整个满了。分区的时候如果可以的话尽量设置内存大一些,用设置home时三思一下
    下图是我整个安装完(因为要跑项目程序还额外配置了一个tensorflow1的环境,此外可能下了一些有用的包,不过这部分应该比较小)的磁盘使用情况:
    双系统Ubuntu22.04深度学习环境配置与踩坑记录_第3张图片5. 输入不了中文:打开设置-区域与语言- 管理已安装的语言
    新装系统它会让你更新下载(有点慢注意一下)下载完成后就可以使用默认中文输入法了,和windows一样按shift中英互换

Nvidia和CUDA安装

先讲结论:直接用避免繁琐步骤,在Ubuntu22.04安装cuda、cudnn及pytorch的方法,依次在终端输入两行代码:

ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

然后就直接就能在附加驱动上下载NVIDIA和CUDA。下载完成后重启,输入

\\注意这里没有空格!!!
nvidia-smi

就能看到安装的NVIDIA版本等信息(图中CUDA为可以安装的最高版本)

此时用nvcc -V是识别不了命令的,它会让你下载nvcc的包,按照终端提示的命令下载完包就可以用nvcc -V看到我们安装的CUDA版本了
注意!和在CUDA官网安装的方法不同,这种方法的默认路径不是usr/local,而是装在了usr/lib/cuda里,之后装cuDNN以及使用tensorflow时需要注意并更改路径,否则运行不了

以下是我的CUDA的位置:

双系统Ubuntu22.04深度学习环境配置与踩坑记录_第4张图片

踩坑经历

如果是在官网下载安装的驱动,看别人的教程应该是也可以安装好NVIDIA和CUDA的,但是如果安装CUDA的时候遇到了以下问题:
双系统Ubuntu22.04深度学习环境配置与踩坑记录_第5张图片
还是建议重装ubuntu使用上述方法在附加驱动里下载NVIDIA和CUDA,这里应该是版本不匹配的问题,如果自行安装xorg-video-abi-24的话会导致版本降级,从而破坏更多的依赖关系,还是安装不了CUDA

官网安装所遇问题

如果没有出现xorg-video的报错在官网上安装NVIDIA也可以,直接按照教程:Ubuntu20.04安装nvidia显卡驱动——超详细第七步来就行(因为我们是双系统装的ubuntu系统没有带驱动,可以打开附加驱动此时也是显示没有驱动)
但仍会遇到以下问题请注意:

  1. sudo telinit 3关掉显示屏后续操作没有用
    不知道是不是版本问题关掉显示屏输入用户名和密码后无论输入什么命令都是:[sudo]◆◆◆◆◆◆◆
    用sudo telinit 5还是恢复不了显示屏,最后只能重启。我最后的解决方法好像是运行.run包的时候在后面加–no-opengl-files 还是 -no-x-check (当时是深夜折腾到比较晚忽然就装上了也不太记得具体是什么命令了)
    2.CUDA官网是没有Ubuntu22.04版本的,按之前提到的教程下载20.04好像就可以,只不过我安装的时候就遇到了xorg-video的报错。安装时注意自己NVIDIA驱动所能安装CUDA的最高版本(即nvidia-smi显示的版本)
    3.CUDA install时报错缺失liburcu6可以直接自行下载
    注意我找的时候只有amd64架构的没有x86_64的,但我下载amd64的包报错消失了,应该是能用
    安装代码如下1:
1/ wget http://archive.ubuntu.com/ubuntu/pool/main/libu/liburcu/liburcu6_0.11.1-2_amd64.deb
2/ sudo dpkg -i sudo dpkg -i liburcu6_0.11.1-2_amd64.deb

cuDNN安装

直接在cuDNN官网下载所需版本安装包并解压;下载前需要注册账号并填一个简单的问卷(乱填都行)
这一步一定注意你安装的CUDA的版本(终端使用命令nvcc -V) 下图为我安装的版本:

双系统Ubuntu22.04深度学习环境配置与踩坑记录_第6张图片
解压到当前文件夹就行,解压可以用归档管理器也可以使用如下命令:

tar -xvf 文件名 

最后将cuDNN的头文件家到CUDA中就行了(注意下面命令,在解压完cuDNN的当前文件夹打开终端) 像上提到的,注意自己的cuda文件夹路径是usr/local还是usr/lib

sudo cp include/cudnn.h  /usr/lib/cuda/include
sudo cp include/cudnn_version.h  /usr/lib/cuda/include //加这一行是为了方便看cuDNN的版本号
sudo cp lib/libcudnn* /usr/llib/cuda/lib64
sudo cp include/cudnn.h  /usr/lib/cuda/include
sudo cp include/cudnn_version.h   /usr/lib/cuda/include
sudo chmod a+r /usr/lib/cuda/lib64/libcudnn*

最后输入 (依旧注意自己的路径是lib还是local)

cat /usr/lib/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

就能看到自己安装成功的cuDNN的版本号了

双系统Ubuntu22.04深度学习环境配置与踩坑记录_第7张图片

Anaconda安装

直接用Anaconda官网的命令安装(这里是x86_64的架构注意一下):

bash Anaconda3-2021.11-Linux-x86_64.sh   

一路yes和回车,注意自己的安装路径(会带自己的用户名,不知道路径可以文件右击属性看到)。最后还要source一下啥的,具体操作可以参考1
注:不知道为什么我的anaconda可以正常运行但是界面启动不了(无相应),因为不影响使用暂时没解决

Pytorch安装与验证

创建Pytorch环境

Anaconda用一下命令在env文件夹中创建一个新的环境并激活(python版本可以参考本人上面所提版本配置):

conda create -n 环境名陈 python=x.x.x \\python=x.x.x 可以指定python版本,不需要的话可以直接去掉
conda activate 环境名称 

之后在终端每次使用这个环境下载包或者测试都要输入激活语句,输入后文件名会加上(环境名称)的前缀

下载及验证

进入Pytorch官网选择自己适合的版本(CUDA好像最高就是11.3,装的CUDA11系列可以用这个,下载时注意Python,CUDA的版本对应关系):

双系统Ubuntu22.04深度学习环境配置与踩坑记录_第8张图片
依据官网,在所激活的Pytorch环境中输入以下安装语句:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

安装成功后我们就可以在pip list上看到torch版本:

双系统Ubuntu22.04深度学习环境配置与踩坑记录_第9张图片
最后我们验证一下gpu是否能用:

  1. 在激活的pytorch环境中输入python进入python模式(按ctrl+D或者输入exit()退出)
  2. 输入 import torch 后输入 torch.cuda.is_available()
    双系统Ubuntu22.04深度学习环境配置与踩坑记录_第10张图片
    返回True就表示安装成功,gpu可以使用啦

Tensorflow安装与验证

依旧先在Anaconda中创建一个新的环境并激活(考虑到Tensorflow官网写的3.9,python版本我设置的3.9.1):

conda create -n tensorflow python=3.9.1
conda activate tensorflow 

进入Tensorflow官网查看相关版本以及所需配置,注意python,cuda与tensorflow对应关系,可以参考我的配置
在激活的tensorflow环境里用conda install tensorflow_gpu==x.x.x 或者 pip install tensorflow_gpu=x.x.x 就可以下载了。下载完成后可以查看一下pip list:

双系统Ubuntu22.04深度学习环境配置与踩坑记录_第11张图片
最后的验证环节依旧是进入tensorflow下的python,加载tensorflow的包,输入:

1| import tensorflow as tf
2| tf.test.is_gpu_available()

返回True即安装成功

验证gpu时出现报错

如果上述过程出现了报错:

2022-05-04 19:18:21.807268: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:936] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-05-04 19:18:21.807638: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1850] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.
Skipping registering GPU devices...
False

不要慌,也不需要在这个环境中用conda install 重新下载cudnn相关的包(要几个G呢)。这可能就是上述提到的cuda路径的问题,系统把tensorflow中找cuda和cudnn的路径设为了usr/local,但是我们的cuda装在usr/lib中。修改这个路径即可。以下是操作步骤:

  1. tensorflow环境下输入
sudo gedit ~/.bashrc
  1. 找到用绿字标识的我们需要修改的path并把它修改成我们的CUDA路径

双系统Ubuntu22.04深度学习环境配置与踩坑记录_第12张图片
3. 保存,重启终端,激活tensorflow环境再次验证tf.test.is_gpu_available(),即可输出True

Pycharm安装与启动

本人用的snap下载的Pycharm(需要Ubuntu16.04及更高版本),需要时间稍久,网速比较慢的同学可以换正常下载方式。

sudo snap install [pycharm-professional|pycharm-community] --classic

如果识别不了需要先用sudo apt install下载snap的包(记错勿喷)

最后终端输入pycharm-community启动pycharm就ok了
用pycharm运行时要在setting中加入conda的我们刚刚创建的pytorch和tensorflow的环境,具体可参考网易云课堂《深度学习与TensorFlow2入门实践》的示范

结语

感谢看到这里!希望这篇博客能对你有所帮助。由于是事后梳理有些步骤是凭借记忆写的,如有错误恳请指出,还请轻喷,谢谢。
最后叨叨几句:其实大创项目需要运行的代码是可以在Windows上运行的(导师记错了哈哈),因为在github上下载文件的时候一个checkpoint文件夹放在了Linux的安装命令里面导致缺少文件所以运行不了。不过俺也算阴差阳错地装了双系统,学习了Ubuntu以及Linux下的不少知识。虽然花费的时间很多,期间还重装了好几次,不过现在也总算入门了。学习新的东西总是有趣的,Ubuntu的便利优点不少(当然不便利的地方也很多),之后的学习过程应该也会整理成博客,希望大家都能学习顺利,少碰bug~


  1. https://blog.csdn.net/qq_41746268/article/details/124415682 ↩︎ ↩︎

你可能感兴趣的