ubuntu pytorch 深度学习环境配置

2023-11-06

目录

一. Ubuntu20.04下用ppa源安装NVIDIA显卡驱动

1. 先查询适用自己电脑型号的英伟达驱动版本

官网查选 官方 GeForce 驱动程序 | NVIDIA

2. 禁用默认驱动(nouveau)

3. 打开 软件与更新 ,点击 附加驱动 ,更改 驱动版本 并 应用。

4. 如果 附加驱动 中没有我们需要的显卡驱动版本,可以自行安装。

5. 输入 nvidia-smi 查询 NVIDIA 版本,显示如下所示。

6. 遇到的问题及解决办法

二. 安装CUDA

 1.安装命令

2. 添加环境变量

3.验证成功

三. 安装CUDNN

1. 下载地址:

2. 安装命令

四. Anaconda 安装

五. Pytorch 安装

1.新建Pytorch虚拟环境

2.切换至Pytorch虚拟环境

3.在Pytorch虚拟环境下安装pytorch

4. 验证

安装源:

参考链接:


一. Ubuntu20.04下用ppa源安装NVIDIA显卡驱动

1. 先查询适用自己电脑型号的英伟达驱动版本

官网查选 官方 GeForce 驱动程序 | NVIDIA

 查询结果显示,510,495,470。

2. 禁用默认驱动(nouveau)

1):首先将原来的默认驱动(nouveau)加入黑名单。

在Terminal中输入

sudo gedit  /etc/modprobe.d/blacklist-nouveau.conf

会打开一个文本文档,在这个文本文档的最后输入:

blacklist nouveau  
options nouveau modeset=0

2):输入

sudo update-initramfs -u

更新文件后重启系统

3):重启后,在登录界面按住“Ctrl+Alt+F1”进入文字界面,输入登录信息后。输入

lsmod | grep nouveau

确认无输出内容即表示默认的自带显卡已经被干掉了。

3. 打开 软件与更新 ,点击 附加驱动 ,更改 驱动版本 并 应用。

此处我选择510版本。

4. 如果 附加驱动 中没有我们需要的显卡驱动版本,可以自行安装。

sudo add-apt-repository ppa:graphics-drivers/ppa
 
sudo apt-get update
 
sudo apt-get install nvidia-driver-510#(我适用版本是510,根据自己需要版本改这个版本号)
 
sudo apt-get install mesa-common-dev
 
sudo apt-get install freeglut3-dev

安装完成后,重启电脑。

5. 输入 nvidia-smi 查询 NVIDIA 版本,显示如下所示。

6. 遇到的问题及解决办法

i) 显卡驱动报错:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running

解决办法一:

# 执行命令
sudo apt-get install dkms
sudo dkms install -m nvidia -v 510.47.03(510.47.03表示的是驱动版本号)

# 利用命令 ll /usr/src/ 可查看下面有一个nvidia-510.47.03/文件夹,版本号因电脑而异

解决办法二:

启动系统时,选择与之显卡驱动匹配的旧版本系统内核。

重启系统之前,可使用命令查看当前系统内核版本:

uname -r

5.13.0-28-generic(这是作者目前的系统内核版本)

重启系统,在进行ubuntu启动引导的界面时,选择“ubuntu高级选项”,选择一个以前的内核版本,然后成功进入系统。

可以使用watch -n 0.2 nvidia-smi命令实时查看显卡工作情况,0.2表示每间隔0.2秒刷新一次。

附:

命令行关闭系统自动更新,使用命令打开文件并编辑

sudo vim /etc/apt/apt.conf.d/10periodic

将双引号中的“1”全部置“0”即可,修改后保存。

如果要使用图形界面来关闭自动更新,找到系统设置(System Settings) --> 软件更新(Software & Updates) 

二. 安装CUDA

 1.安装命令

CUDA Toolkit 11.6 Downloads | NVIDIA Developer

2. 添加环境变量

sudo gedit ~/.bashrc

 在打开的txt文件末尾加

export CUDA_HOME=/usr/local/cuda 
export PATH=$PATH:$CUDA_HOME/bin 
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存,退出。终端执行

source ~/.bashrc

3.验证成功

nvcc --version

此外还需下载cuda samples 并 编译:

11.6 版本cuda的安装目录/usr/local/cuda-11.6/samples里只有一个txt文件,大致意思是告诉你新版本的cuda,samples中内容需要自己在github下载。

由于github下载过慢,在此放上gitee链接,在samples文件夹下打开终端执行上述语句。

sudo git clone https://gitee.com/liwuhaoooo/cuda-samples.git

然后执行:

cd /usr/local/cuda/samples/cuda-samples/Samples/1_Utilities/deviceQuery 
sudo make
./deviceQuery

输出:

!出现的问题:

1.安装cuda时,出现了ubuntu根目录空间不足的问题,因为当初lz分配给 / 的空间只有 20G,导致CUDA并未安装成功。解决办法:需要用到 GPARTED 分区编辑器 以及 ubuntu启动盘,给 / 额外增加 30G 的容量。

ubuntu 16.04根目录磁盘空间扩容(亲测!!)_fire_lgh的博客-CSDN博客_ubuntu扩容

2.cuda : 依赖: cuda-16-1 (>= 16.1.0) 但是它将不会被安装

解决方法:

sudo apt-get install aptitude #安装aptitude

sudo aptitude install cuda #将apt-get换成aptitude

# 好多冲突,选择了Y,510替换了

reboot

nvidia-smi

nvcc --version

3.ubuntu apt 安装软件时 出现(--configure)时出错,解决办法:

好像是因为以前在更新系统时强制中断的原因, 后来更新软件经常卡在一个地方不动,然后报(–configure)时出错。

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old # 现将info文件夹更名
sudo mkdir /var/lib/dpkg/info # 再新建一个新的info文件夹
sudo apt-get update, apt-get -f install # 不用解释了吧
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old # 执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
sudo rm -rf /var/lib/dpkg/info # 把自己新建的info文件夹删掉
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info # 把以前的info文件夹重新改回名字

4. gcc版本相关CUDA,NVIDIA Driver,Linux,GCC之间的版本对应关系表格_Cooper.zhang-CSDN博客_cuda gcc

若gcc需要降级,可参考链接:

https://www.jb51.net/article/192060.htm

三. 安装CUDNN

1. 下载地址:

https://developer.nvidia.com/rdp/cudnn-download

 需要注册,选择合适的版本下载(libraries for linux),然后解压。

2. 安装命令

进入到解压好的文件夹下,右键 在终端中打开,运行以下命令:

sudo cp cuda/include/cudnn.h /usr/local/cuda-11.6/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.6/lib64
sudo chmod a+r /usr/local/cuda-11.6/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-11.6/lib64/libcudnn*

四. Anaconda 安装

在anaconda官网上下载最新版。地址:Anaconda | Individual Edition

 终端在安装包所在文件夹目录下运行如下命令:

bash Anaconda3-2021.05-Linux-x86_64.sh 

 一路Enter 和 yes。注意是否在 ~/.bashrc 文件中加入了环境变量。

source ~/.bashrc
conda -V

显示:

conda 4.10.1

五. Pytorch 安装

1.新建Pytorch虚拟环境

conda create -n pytorch python=3.8

2.切换至Pytorch虚拟环境

conda activate pytorch

3.在Pytorch虚拟环境下安装pytorch

下载地址:Start Locally | PyTorch

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

4. 验证

python
import torch
print(torch.__version__)

输出:1.10.2

print(torch.cuda.is_available())

输出结果为:True

print(torch.backends.cudnn.version())

输出结果为:8200

安装源:

1. cuda 与 nvidia driver 版本匹配问题:

CUDA Compatibility :: GPU Deployment and Management Documentation

 2. 清华源下载地址

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

3. cuda 下载地址

老版本:

CUDA Toolkit Archive | NVIDIA Developer

新版本:

CUDA Toolkit 11.4 Update 2 Downloads | NVIDIA Developer

4. cudnn 下载地址

cuDNN Archive | NVIDIA Developer

5. pytorch 下载地址

https://download.pytorch.org/whl/torch_stable.html

6. Anaconda 版本 对应的 python 版本

Old package lists — Anaconda documentation

参考链接:

1. 显卡驱动报错:NVIDIA-SMI has failed _u012114438的博客-CSDN博客
2. (Ubuntu安装二)Ubuntu16.04下用ppa源安装NVIDIA显卡驱动_elegantoo的博客-CSDN博客

3. cuda : 依赖: cuda-11-1 (>= 11.1.0) 但是它将不会被安装_Simoneming的博客-CSDN博客

4.  ubuntu 16.04根目录磁盘空间扩容(亲测!!)_fire_lgh的博客-CSDN博客_ubuntu扩容

Ubuntu 18.04 的安装过程

参考链接:Ubuntu18.04安装教程_Sunshine的博客-CSDN博客_ubuntu安装教程

ubuntu ISO 下载:Ubuntu 20.04.4 LTS (Focal Fossa) 

1. 首先下载了中科大的Ubuntu国内源。使用ultraiso软件制作了Ubuntu的启动盘。

1)ultraIso激活的注册码可以在网上搜到。

2)先将u盘进行了格式化,打开Ubuntu的ISO文件,点击 启动 - 写入硬盘映像 将Ubuntu写入u盘。 这里我勾选了 “刻录校验”,之后等待大约十分钟,完成后点击返回按钮。

 2. 给Ubuntu分配硬盘空间

在计算机 “开始” 键处右击,选择 磁盘管理 ,通过删除卷删除分区操作腾出一块未分配的磁盘空间作为安装区。

3. 设置启动项

关机,插入启动u盘,开机,迅速按F2 进入 BIOS设置,此处可以设置BIOS sequence。同时在legacy与uefi 中选择 uefi。

4. Ubuntu安装

关机重启选择 F12,选择install Ubuntu。跟着引导安装就好。

!!!比较重要的就是分区:

此处我分了五个区:

efi 主分区 efi 4GB(4096MB)
/ 主分区 Ext4 100GB
/boot 主分区 Ext4 8GB
/home 逻辑分区 Ext4 1000GB
swap 逻辑分区 交换空间 32GB

 安装完成!

ubuntu18.04 重启进入系统页面卡在“started gnome display manager“:

在 recovery mode下选择了resume normal boot,然后就修复好了,进入了图形界面。

其他可能的解决办法:

若图形界面有问题。
开机后,在显示dell图标后(按下Esc进入grub界面),选择ubuntu高级选项。在修复模式下,进入root,输入密码后,输入命令:startx

深度学习环境配置好,nvidia驱动安装完,使用ubuntu系统一段时间后,重启系统发现加载nvidia显卡出现问题,进不了图形界面,此时的问题是ubuntu内核下载了新的版本,开机重启默认的是新的内核版本。所以我们在开机选择系统界面,选择ubuntu的高级选项,进入后选择最低版的内核版本,进入系统,这时就没有任何问题啦。

2023.9.4 遇到问题:踩坑系列之pytorch安装之后不能使用cuda_pytorch不支持cuda12_浅冲一下的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu pytorch 深度学习环境配置 的相关文章

  • 在 Ubuntu 上使用 Python 获取显示器分辨率

    对于 Ubuntu win32api 中是否有与 GetSystemMetrics 相当的代码 我需要获取显示器的宽度和高度 以像素为单位 我可以建议一些可以使用的方法 不过我还没有使用过 xlib 版本 1 xlib Python 程序的
  • 当前向包含多个自动分级节点时,PyTorch 关于使用非完整后向挂钩的警告

    最近升级后 当运行 PyTorch 循环时 我现在收到警告 当前向包含多个自动分级节点时使用非完整后向钩子 训练仍在运行并完成 但我不确定应该将其放置在哪里register full backward hook功能 我尝试将它添加到神经网络
  • 如何解决 STS 启动时出现“无法找到用于堆栈映射生成的 Asm”错误?

    我正在尝试使用Spring工具套件3 8 3在 Ubuntu 16 04 上 启动后我收到此错误 期间发生内部错误 初始化 Java 工具 详细消息 在 初始化 Java 工具 期间发生内部错误 无法 找到用于堆栈图生成的 Asm 寻找 a
  • socket.io 自动断开套接字

    当我在电子中运行 socket io 时 我不断在开发者控制台中收到此错误 engine io client socket probe transport websocket failed because of error transpor
  • Microk8s 节点未准备好 - InvalidDiskCapacity

    microk8s的节点不想启动 Kube system Pod 处于挂起状态 kubectl describe nodes说是警告InvalidDiskCapacity 我的服务器有足够的资源 PODS NAMESPACE NAME REA
  • 没有名为“torch”或“torch.C”的模块

    希望得到像我 5 这样的解释 因为我已经检查了所有相关答案 但没有一个有帮助 我已经安装了Python 我已经安装了Pycharm 我已经安装了Anaconda 我已经安装了 Microsoft Visual Studio 我有not安装了
  • 将 Poetry 与 PyEnv 一起使用并遇到 Python 版本问题

    我正在使用 WSL2 Ubuntu 我一直在学习使用 Fastapi 进行后端 API 开发的课程 我相信我的 Ubuntu 默认 python 是 3 8 我正在尝试使用 python 3 10 0 进行开发 我做了以下事情 pyenv安
  • seq 使用逗号作为小数点分隔符

    我注意到一个奇怪的现象seq我的一台计算机 Ubuntu LTS 14 04 上的行为 不是使用点作为小数点分隔符 而是使用逗号 seq 0 0 1 0 2 0 0 0 1 0 2 我的另一台 PC 上相同版本的 seq 8 21 给出了正
  • 加载了不兼容的 JavaHl 库

    我在使用 Subclipse 和 JavaHL 库时遇到问题 Subclipse 它给出了错误 加载了不兼容的 JavaHL 库 需要 1 8 x 或更高版本 我使用的是 Ubuntu 桌面 12 04 32 位 Subclipse 1 1
  • make找不到curses.h

    我有一个名为 samtools 版本 1 3 的程序 用于操作从 DNA 测序实验中获得的文件 下载的程序包含在一个文件夹中 为了设置程序 我在终端 在 ubuntu 计算机上 中输入该文件夹 我输入突击队 make 它运行并打印它所做的事
  • Linux 软件包存储库中的 *​​-dev 软件包实际上包含什么?

    我的问题非常基本 我现在的知识也是如此 我是 Linux 的长期用户 但直到最近才对编程产生了浓厚的兴趣 我看到 Ubuntu 存储库中的许多流行应用程序都有 dev 软件包 例如洋泾浜开发者此外pidgin 我的问题是这样的 这些包裹里有
  • PyTorch 中的标签平滑

    我正在建造一个ResNet 18分类模型为斯坦福汽车使用迁移学习的数据集 我想实施标签平滑 https arxiv org pdf 1701 06548 pdf惩罚过度自信的预测并提高泛化能力 TensorFlow有一个简单的关键字参数Cr
  • 使用终端时出现意外标记“(”附近的语法错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我试图为我的平板电脑获取一个 cpuid 该平板电脑变砖了 我有这段代码 当我通过终端在 ubuntu 上执行它时 它给出以下错误
  • python3-pip 安装但找不到 pip3 命令?

    我正在几台计算机上测试Python3 程序 为此 我需要使用 pip3 安装 Python 库 首先 我在每台计算机上安装 python3 pip 每个计算机都运行 Kubuntu 操作系统 一切都很好 然后我用 pip3 安装了我需要的包
  • nginx + WordPress:SFTP + 自动更新的适当用户/文件权限?

    I used this http wordimpress com aws ec2 rds s3 cloudfront nginx wordpress tutorial roundup 在 Ubuntu VPS 上安装 nginx 和 Wor
  • vim 中的 python 2 支持

    我正在尝试设置 YouCompleteMe 一个 vim 代码完成插件 当我运行 vim 时 它给我这个错误消息 YouCompleteMe unavailable 需要 python 2 x 我的 ubuntu 机器上安装了正确版本的 p
  • 来自守护程序的错误响应:加入会话密钥环:创建会话密钥:超出磁盘配额

    我尝试在我的服务器上安装 docker 使用本教程 https docs docker com install linux docker ce ubuntu 我想远程运行 docker 镜像并使用 portainer Web 界面来管理一切
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • 带有填充掩码的 TransformerEncoder

    我正在尝试使用 src key padding mask 不等于 none 来实现 torch nn TransformerEncoder 想象输入的形状src 20 95 二进制填充掩码的形状为src mask 20 95 填充标记的位置
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4

随机推荐

  • 类模板的定义和使用注意事项。

    include iostream include string using namespace std 类模板 设置了默认数据类型 如 template
  • MATLAB代码:基于二阶锥优化电气综合能源系统优化调度研究

    MATLAB代码 基于二阶锥优化电气综合能源系统优化调度研究 关键词 电气综合能源 优化调度 二阶锥优化 参考文档 考虑气电联合需求响应的气电综合能源配网系统协调优化运行 参考部分配电网设备模型 非完全复现 以文档为准 仿真平台 MATLA
  • 【C++】一文详解lambda表达式用法及发展历程

    文章目录 1 lambda表达式语法 2 捕获列表 2 1 作用域 2 2 捕获值与捕获引用 2 3 特殊捕获方法 3 lambda表达式实现原理 4 无状态lambda表达式 5 在STL中使用lambda表达式 6 广义捕获 7 泛型l
  • 域名系统中的本地域名服务器、根域名服务器、顶级域名服务器以及权限域名服务器。

    根域名服务器 是最高层次的域名服务器 也是最重要的域名服务器 所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址 顶级域名服务器 这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名 权限域名服务器 负责一个区的域名服务器
  • 资源服务器验证Token的几种方式

    资源服务器验证Token的几种方式 在微服务中 除了eureka config 网关等基本的微服务还有认证服务和资源服务 上图描述了使用了 OAuth2 的客户端请求验证token的流程 是通过资源服务向认证服务验证token 过程就是客户
  • 消息队列原理及选型

    什么是消息队列 消息队列 Message Queue 是一种进程间通信或同一进程的不同线程间的通信方式 什么时候需要消息队列 异步处理 例如短信通知 终端状态推送 App推送 用户注册等 有些业务不想也不需要立即处理消息 消息队列提供了异步
  • Redis主从复制架构和Sentinel哨兵机制

    一 redis主从复制原理 redis主从同步策略 slave刚加入集群会触发一次全量同步 全量复制 全量同步之后 进行增量复制 slave优先是增量同步 如果增量同步失败会尝试从master节点进行全量复制 全量复制 slave初始化阶段
  • 华为OD机试真题- 数值同化-2023年OD统一考试(B卷)

    题目描述 存在一个m n的二维数组 其成员取值范围为0 1 2 其中值为1的元素具备同化特性 每经过1S 将上下左右值为0的元素同化为1 而值为2的元素 免疫同化 将数组所有成员随机初始化为0或2 再将矩阵的 0 0 元素修改成1 在经过足
  • IDEA连接SSH以及上传项目文件到指定远程服务器文件夹

    一 IDEA连接SSH 确认你的密码输对了 还好我保存了我的远程服务器的密码 原先我一直以为我输对了 导致一直报错Auth fail 点击ok 连接上了 二 将项目文件传输到 远程服务器的指定文件夹 name随意起个名字 1 是你的本地项目
  • 什么叫异步通信?同步通信与异步通信的区别是什么?

    异步通信 又称为起止式异步通信 数据帧与数据帧之间没有固定时间间隔约定 可以是不定时长的 空闲位 异步通信是在内部约定好时钟 芯片设计设定好的时钟 用起始位开头 中间包含数据位后面随效验位和停止位的格式 我们称之为 帧 整个数据帧的位组成是
  • 【云服务器】阿里云服务器部署web项目前的准备(安装Nginx,jdk,Tomcat,MySQL)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 一 首先得有一台云服务器 白嫖党可以去看看鱼皮的视频或者百度搜索如何白嫖阿里云服务器 二 安装nginx反向代理服务器 二 Jdk和Tomcat的安装 1 jdk
  • 集团服务器 系统,开创集团云服务器

    开创集团云服务器 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 本节操作介绍通过华为云APP连接Linux实例的操作步骤
  • umi搭建的react项目——如何mock数据

    umi搭建的react项目 如何mock数据 1 本地配置打开 本地配置umirc local ts中的mock配置打开 export default defineConfig mock 2 配置接口 在项目配置接口的文件中添加接口 例如
  • eclipse 设置系统变量和运行参数

    在开发时 有时候可能需要根据不同的环境设置不同的系统参数 我们都知道 在使用java jar命令时可以使用 D参数来设置运行时的系统变量 同样 在Eclipse中运行java程序时 我们怎么设置该系统变量呢 另外 如果我们的程序需要输入运行
  • mysql 游标

    who 游标是什么 游标 cursor 官方定义 是系统为用户开通的一个数据缓冲区 存放sql执行结果 每个游标区都有一个名字 用户可以通过sql语句逐一从游标中获取记录 并赋值给变量 交由主语言进一步处理 个人理解 感觉游标和指针相似 指
  • 手写函数柯里化(Curry)--原理剖析

    函数柯理化的作用 前端使用柯里化的用途主要就是简化代码结构 提高系统的维护性 一个方法 只有一个参数 强制了功能的单一性 很自然就做到了功能内聚 降低耦合 函数柯理化的优点 降低代码的重复 提高代码的适用性 在后面实现应用部分 ajax 会
  • webpack打包速度优化

    优化WebPack打包速度 在开发过程中 WebPack的打包速度是一个非常重要的考虑因素 随着项目规模的增长 打包时间也会越来越长 影响开发效率和用户体验 本文将循序渐进地介绍一些优化WebPack打包速度的方法 先分析打包瓶颈 然后逐步
  • 超分(Super-Resolution, SR )

    知乎有一篇帖子总结了几篇超分的论文 写的很好 https zhuanlan zhihu com p 25532538 utm source tuicool utm medium referral 下面针对上面没有提到的论文进行补充 6 PR
  • 数据库学习笔记(2)——workbench和SQL语言

    1 workbench简介 登录客户端的两种方法 在cmd中 只能通过sql语句控制数据库 workbench其实就是一种图形化数据库管理工具 在workbench中既可以通过sql语句控制数据库 也可以通过图形化界面控制数据库 通过wor
  • ubuntu pytorch 深度学习环境配置

    目录 一 Ubuntu20 04下用ppa源安装NVIDIA显卡驱动 1 先查询适用自己电脑型号的英伟达驱动版本 官网查选 官方 GeForce 驱动程序 NVIDIA 2 禁用默认驱动 nouveau 3 打开 软件与更新 点击 附加驱动