Ubuntu系统使用快速入门实践(六)——Ubuntu深度学习环境配置(1)

news2024/11/30 5:46:24

Ubuntu系统使用快速入门实践系列文章

下面是Ubuntu系统使用系列文章的总链接,本人发表这个系列的文章链接均收录于此

Ubuntu系统使用快速入门实践系列文章总链接


下面是专栏地址:

Ubuntu系统使用快速入门实践系列文章专栏


文章目录

  • Ubuntu系统使用快速入门实践系列文章
    • Ubuntu系统使用快速入门实践系列文章总链接
    • Ubuntu系统使用快速入门实践系列文章专栏
  • 前言
  • Ubuntu系统使用快速入门实践(六)——Ubuntu深度学习环境配置(1)
    • 所需依赖
    • 1.安装Anaconda
      • 1.1 下载安装包
        • 1.镜像源点
        • 2.更换方法
      • 1.2 进入安装文件夹,执行安装脚本
      • 1.3 环境变量的配置与更新
      • 1.4 测试安装
      • 1.5 创建虚拟环境
      • 1.6 退出虚拟环境
      • 1.7 设置开机进入自己的环境
        • Windows下的Anaconda设置
        • Anaconda下的软件安装
          • Jupyter notebook
    • 2.安装英伟达驱动
      • 法一: 命令行安装
      • 法二:GUI界面
      • 检测不到显卡时
      • 报错
        • Failed to initialize NVML
        • No devices were found


前言

Ubuntu是一个以桌面应用为主的Linux发行版操作系统,也是大多数人第一个接触到的Linux系统,尤其是从事理工科研究工作的人,这个系列的文章主要讲述如何使用Ubuntu系统,完成日常的学习、科研以及工作


Ubuntu系统使用快速入门实践(六)——Ubuntu深度学习环境配置(1)

所需依赖

  • 双系统win10 + ubuntu 20.04
  • Anaconda 3
  • CUDA 11.3
  • cuDNN v8.2.1
  • Pytorch 1.10.2(或1.9.0)

1.安装Anaconda

1.1 下载安装包

官网 或者 清华源。

建议选择清华源,因为速度会快很多

Anaconda更换镜像源方法:

1.镜像源点

清华大学开源软件镜像站:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

中国科技大学镜像站:
http://mirrors.ustc.edu.cn/anaconda/pkgs/free/

2.更换方法

cmd命令添加:以- - -添加【清华大学开源软件镜像站】为例

打开cmd 直接依次输入下列命令:

# 清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 
# 中科大源
conda config --add channels http://mirrors.ustc.edu.cn/anaconda/pkgs/free/
#注意:网址中间没有空格,如果有了空格,会出现
#usage: conda-script.py [-h] [-V] command ...
#conda-script.py: error: unrecognized arguments: #//mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

1.2 进入安装文件夹,执行安装脚本

bash Anaconda3-5.3.0-Linux-x86.sh

然后一路选择yes就可以了,但到后面要注意,可能会推送vscode,根据需求选择安装,vscode下载可能比较慢。

1.3 环境变量的配置与更新

echo 'export PATH="/home/xxx/anaconda3/bin:$PATH"' >>~/.bashrc
# 注意:这里的xxx为用户名,我的用户名是jin,所以命令如下
# echo 'export PATH="/home/jin/anaconda3/bin:$PATH"' >>~/.bashrc

更新:(必须更新,否则安装后不生效! )

source ~/.bashrc  # 或者 source /etc/profile 

1.4 测试安装

conda -V
#或者
conda --version  

在这里插入图片描述

1.5 创建虚拟环境

①查看当前环境

conda env list  

②创建虚拟环境

conda create -n your_name python=3.9

③激活创建的虚拟环境

conda activate your_name 

④安装需要的包

conda install 或 pip install,如果觉得用pip安装第三方库慢或者超时报错,可以采用中科大源或者清华源

# 中科大源
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/

# 清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

详见 Ubuntu系统使用快速入门实践(二)——Ubuntu常用命令 中pip换源一节

创建完成后最好重启一下,不然后续安装pytorch可能会装到别的环境中

1.6 退出虚拟环境

安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境。

方法一

每次在命令行通过conda deactivate退出base环境回到系统自带的环境

conda deactivate

方法二

(1)通过将auto_activate_base参数设置为false实现:

conda config --set auto_activate_base false

(2)那要进入的话通过

conda activate base

(3)如果反悔了还是希望base一直留着的话通过conda config --set auto_activate_base true来恢复

conda config --set auto_activate_base true

方法三

通过修改.bashrc

export PATH="~/anaconda/bin:$PATH"

修改为

export PATH="$PATH:~/anaconda/bin"

这样每次登陆服务器的时候都会首先找系统自身的python路径,不会进入conda环境。

1.7 设置开机进入自己的环境

在linux下打开~/.bashrc~/.bash_profile,将

# added by Anaconda 2.1.0 installer
export PATH="~/anaconda3/bin:$PATH"

替换为

# set python3 as default
export PATH="~/anaconda3/envs/dle/bin:$PATH"

在这里插入图片描述

Windows下的Anaconda设置

参考:Anaconda超详细安装教程(Windows环境下)

Anaconda下的软件安装
Jupyter notebook

使用Anaconda安装

conda install jupyter notebook

如果没有自动安装,那么就在Shell中输入以下命令安装:

使用pip安装

pip install jupyter

注意

老版本的pip在安装Jupyter Notebook过程中或面临依赖项无法同步安装的问题。因此需要先把pip升级到最新版本。

pip install --upgrade pip

运行 Jupyter Notebook

jupyter notebook

执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook。

启动过程中终端显示内容如下:

$ jupyter notebook
[I 08 :58:24.417 NotebookApp] Serving
notebooks from local directory:
/Users/catherine
[I 08 :58:24.417 NotebookApp] 0 active kernels
[I 08 :58:24.417 NotebookApp] The Jupyter
Notebook is running at:
http://localhost:8888/
[I 08 :58:24.417 NotebookApp] Use Control-C to
stop this server and shut down all kernels
(twice to skip confirmation).

注意

之后在Jupyter Notebook的所有操作,都请保持终端 不要关闭 ,因为一旦关闭终端,就会断开与本地服务器的链接,将无法在Jupyter Notebook中进行其他操作浏览器地址栏中默认地将会显示:http://localhost: 8888 。其中,“localhost”指的是本机“8888”则是端口号。如果同时**启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个JupyterNotebook数字就加 1 ,如“8889“,”“8890”…

指定端口启动

如果想自定义端口号来启动Jupyter Notebook,可以在终端中输入以下命令:

jupyter notebook --port <port_number>jupyter notebook --port 9999

2.安装英伟达驱动

官网下载驱动:https://www.nvidia.cn/Download/index.aspx?lang=cn

法一: 命令行安装

终端执行如下指令,列出可支持的所有驱动以及推荐驱动。

ubuntu-drivers devices

在这里插入图片描述
在这里插入图片描述

一般选择推荐(recommand)驱动,安装命令如下:

sudo ubuntu-drivers autoinstall #这样就可以直接按照推荐安装了

也可手动指定安装版本,如下所示

sudo apt install nvidia-driver-510

重启ubuntu:

sudo reboot

如果需要卸载驱动,使用命令

sudo apt autoremove nvidia-driver-xxx

法二:GUI界面

**操作步骤:**搜索driver,选择additional drivers,选择所需的驱动,安装,重启。

在这里插入图片描述

注意:不论是哪种方法,安装完重启后要用nvidia-smi命令查看图形卡状态,可以看到驱动版本以及nvidia driver API 的cuda版本!

其中smi是System management interface的缩写

查看显卡状态

nvidia-smi	# 显示一次当前GPU占用情况
nvidia-smi -l	#每秒刷新一次并显示
watch -n 5 nvidia-smi # 其中,5表示每隔6秒刷新一次终端的显示结果

在这里插入图片描述

  • 第一栏的GPU:本机中的GPU编号(有多块显卡的时候,从0开始编号)图上GPU的编号是:0
  • Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
  • 第二栏的Name:GPU类型,图上GPU的类型是:NVIDIA GeForce RTX 2060
  • Temp:是温度,单位摄氏度。
  • 第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
  • 第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
  • 第五栏的Bus-Id是涉及GPU总线的东西
  • 第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
  • 第五第六栏下方的Memory Usage是显存使用率。
  • 第七栏是浮动的GPU利用率。
  • 第八栏上方是关于ECC的东西。
  • 第八栏下方Compute M是计算模式。
  • 下面一张表示每个进程占用的显存使用率。

注: 显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。

nvcc -V(或nvcc --version) 与nvidia-smi中显示的cuda版本不同,系统以nvcc -V为准

CUDA有两个主要的API,runtime API(nvcc -V 显示的cuda)和driver API(nivdia-smi中显示的cuda),两者都有相应的版本(例如8.0、9.0等)。对driver API的必要支持(e.g. libcuda.so on linux),是由GPU驱动安装程序安装的。对runtime API(e.g. libcudart.so on linux, and also nvcc)的必要支持,是由CUDA工具包安装程序安装的

一般情况下,driver API版本与runtime API版本不相同。特别是GPU驱动程序是独立于CUDA工具包(i.e. the CUDA toolkit)下安装的。这样nvidia-smi中的cuda是由NVIDIA GPU 驱动包安装的,而不是由CUDA toolkit安装的。driver API版本的cuda,就与runtime API版本的cuda没有联系了。

因为由CUDA toolkit安装的cuda编译-驱动工具nvcc,总是会报告cuda运行时版本。nvcc不知道系统安装了什么驱动版本,甚至不知道系统是否安装了GPU驱动。

所以,这两个版本不必完全相同,因为它们反映了两种不同的cuda API。

而且在大多数情况下,nvidia-smi报告的cuda版本在数值上等于或高于nvcc -V报告的cuda版本。

检测不到显卡时

参考:

Ubuntu 20.04-NVIDIA显卡驱动-安装和卸载-解决黑屏问题

Ubuntu18.04 Nvidia显卡驱动安装

P106矿卡魔改驱动修改及安装详解(含修改INF文件安装最新驱动,双独立显卡使用等)

有时候电脑会检测不到显卡,更不要谈装驱动了

输入命令

lspci | grep NVIDIA

显示如下

02:00.0 3D controller: NVIDIA Corporation Device 1c36 (rev a1)

在这里插入图片描述

其中,1c36是PCI号,根据pci号在PCI devices查询显卡型号. 从下面的查询结果可以看出,我的显卡型号是P106M,P106是NVIDIA(英伟达)推出的一款专业挖矿显卡,是基于GTX10606GB显卡芯片打造的,属于NVIDIA的产品线。P106显卡并不是针对游戏市场设计的,而是专为数字货币挖矿市场而生产的显卡。

在这里插入图片描述

然后按照显卡型号下载驱动下载官网建议的.run文件,下载完成后移动到主目录。

或者直接使用命令

sudo apt install nvidia-driver-470

在这里插入图片描述

报错

Failed to initialize NVML

参考:

Failed to initialize NVML: Driver/library version mismatch

【nvidia-smi】Failed to initialize NVML: Driver/library version mismatch解决方法(不用重启)

Failed to initialize NVML: Driver/library version mismatch解决方案

nvidia-smi指令报错:Failed to initialize NVML: Driver解决

显卡bug解决思路 Failed to initialize NVML Driver/library version mismatch

输入

nvidia-smi

然后出现如下报错

Failed to initialize NVML: Driver/library version mismatch

在这里插入图片描述

NVIDIA内核驱动版本与系统内核版本不一致

出现该问题的原因是:系统驱动自动更新

查看驱动的版本:

cat /var/log/dpkg.log |grep nvidia

可以看到以下信息:

在这里插入图片描述

红框里指的是,系统驱动从510.85.02更新到了510.108.03。

此时在终端输入命令,查看内核的版本

cat /proc/driver/nvidia/version

在这里插入图片描述

我的另外一台机器显示为 525.125.06 版本

在这里插入图片描述

卸载现有驱动,重新安装

sudo /usr/bin/nvidia-uninstall
sudo apt-get --purge remove nvidia-*
sudo apt-get purge nvidia*
sudo apt-get purge libnvidia*

重启后,重新安装

sudo ubuntu-drivers autoinstall #这样就可以直接按照推荐安装了
# 或者
sudo apt install nvidia-driver-510
No devices were found

参考:

阿里云服务器执行nvidia-smi命令后提示【No devices were found】

安装完英伟达驱动后,使用命令nvidia-smi时,报错

No devices were found

在这里插入图片描述

首先查看下显卡是否还在,如下:

lspci | grep -i nvidia

结果如下:

在这里插入图片描述

或者

lspci | grep -i vga

结果如下

在这里插入图片描述

说明硬件是还在的。

装了别的版本的驱动就能找到了,卸了换几个版本装试试

记得重新安装后要重启

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

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

相关文章

android studio安装说明

一、安装文件下载&#xff1a; Android studio、SDK、NDK下载&#xff1a; https://developer.android.google.cn/ndk/downloads?hlzh-cn 二、双击android studio 安装文件&#xff0c;开始安装&#xff1a; 三、进入安装界面&#xff0c;点击“next”。 四、点击“next”&…

uni-app 微信小程序之加载行政区图

文章目录 1. 实现效果2. 实现步骤 1. 实现效果 2. 实现步骤 使用三方组件 ucharts echarts 高性能跨全端图表组件页面导入引入的三方组件 组件demo代码 <template><view class"qiun-columns"><view class"cu-bar bg-white margin-top-xs"…

Leetcode刷题笔记题解(C++):BM11 链表相加(二)

思路&#xff1a;先对两个链表进行反转&#xff0c;反转求和注意进位运算&#xff0c;求和完成之后再进行反转得到结果 /*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/ #include <cstddef> class Soluti…

STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计

STM32单片机项目实例&#xff1a;基于TouchGFX的智能手表设计&#xff08;2&#xff09;UI交互逻辑的设计 目录 一、UI交互逻辑的设计 1.1 硬件平台的资源 1.2 界面切换功能 ​​​​​​​1.3 表盘界面 1.4 运动界面 ​​​​​​​1.6 设置界面 ​​​​​​​1.7 应…

SpringBoot 与Maven ProFile的使用

SpringBoot 与Maven ProFile的使用 目录结构 dev 开发环境 sit 测试环境 prd 正式环境 maven 配置 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>&l…

Linux中的输入输出重定向

目录 1.输出重定向 > 2.追加重定向 >> 3.标准 正确/错误 输出重定向 4.输入重定向 < 5.标准输入 0 1.输出重定向 > 将命令执行之后的结果不打印出来&#xff0c;可以输入在另外一个文件当中。 如&#xff0c;我查看文件a.txt 的前3行&#xff0c;然后不显…

【PyTorch】训练过程可视化

文章目录 1. 训练过程中的可视化1.1. alive_progress1.2. rich.progress 2. 训练结束后的可视化2.1. tensorboardX2.1.1. 安装2.1.2. 使用 1. 训练过程中的可视化 主要是监控训练的进度。 1.1. alive_progress 安装 pip install alive_progress使用 from alive_progress i…

Vue 父传子组件传参 defineProps

defineProps 属性&#xff1a;用于接收父组件传递过来的数据。 注意&#xff1a;如果 defineProps 接收的参数名&#xff0c;和已有变量名相同&#xff0c;就会造成命名冲突。 语法格式&#xff1a; // 无限制 const props defineProps([参数名, 参数名]);// 限制数据类型 …

高德地图vue实现热力图(缩放时展示不同数据)

高德地图插件引入省略。。。 效果图 1.1&#xff1a;初始化时&#xff0c;按省进行统计 1.2&#xff1a;地图放大一定程度时&#xff0c;按市进行统计 2. 同一个经纬点可支持展示两个数据 代码实现 <template><div class"infringement-map"><di…

西南科技大学C++程序设计实验七(继承与派生二)

一、实验目的 1. 掌握多继承程序设计 2. 掌握虚基类编程 3. 拓展学习可视化程序设计中的继承与派生应用 二、实验任务 重点:掌握虚基类的定义与实现,拓展其功能。 阅读分析、完善程序。下面程序(1)与程序(2)分别是没有使用虚基类和使用虚基类的代码,其中A是最上层基…

MA营销自动化如何助力商家实现精准营销?

惟客数据 MAP 是一个跨渠道和设备的自动化营销平台&#xff0c;允许接触点编排个性化旅程&#xff0c;通过短信、社交推送等方式为您的客户创建无缝的个性化体验&#xff0c;加强客户关系并赢得忠诚度。可与惟客数据CDP 产品无缝配合使用&#xff0c;通过数据驱动做出更实时&am…

javaee实验:文件上传及拦截器的使用

目录 文件上传ModelAttribute注解实验目的实验内容实验过程项目结构编写代码结果展示 文件上传 Spring MVC 提供 MultipartFile 接口作为参数来处理文件上传。 MultipartFile 提供以下方法来获取上传的文件信息&#xff1a;  getOriginalFilename 获取上传的文件名字&#x…

ACM32F403/F433 12 位多通道,支持 MPU 存储保护功能,应用于工业控制,智能家居等产品中

ACM32F403/F433 芯片的内核基于 ARMv8-M 架构&#xff0c;支持 Cortex-M33 和 Cortex-M4F 指令集。芯片内核 支持一整套DSP指令用于数字信号处理&#xff0c;支持单精度FPU处理浮点数据&#xff0c;同时还支持Memory Protection Unit &#xff08;MPU&#xff09;用于提升应用的…

Stable Diffusion AI绘画系列【17】:绘本童话风格场景

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

AidLux:手机/平板上的Linux环境与AI开发利器

AidLux是一个基于ARM架构的跨生态&#xff08;鸿蒙/AndroidLinux&#xff09;一站式智能物联网&#xff08;AIoT&#xff09;应用开发和部署平台&#xff0c;正受到越来越多开发者和用户的青睐。既可以作为手机/平板上的一个Linux环境使用&#xff0c;也可以作为AI开发利器以发…

文本编辑软件:Ulysses mac介绍说明

Ulysses mac是面向 Mac、iPhone 和 iPad 的一站式写作环境。Ulysses 提供令人愉悦、专注的写作体验&#xff0c;加上高效文稿管理、无缝同步以及灵活导出。markdown 可以直接对于文本进行不同类型的分类、编辑&#xff0c;比如标题、注解、评论之类的内容。 Ulysses让注意力专…

java学习part38一些常用类和api

151-常用类与基础API-其它常用类的使用&#xff1a;BigInteger、BigDecimal、Random等_哔哩哔哩_bilibili 1.System 2.Runtime 3.java.lang.math 4.java.math 4.1大整数类 4.2大浮点数类 4.3随机类

P1005 [NOIP2007 提高组] 矩阵取数游戏

网址&#xff1a;P1005 [NOIP2007 提高组] 矩阵取数游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 动态规划和高精度的组合&#xff0c;使我的滨州旋转 最后只得了80&#xff0c;两个测试点超时了 看题解有人是用了int128来做的&#xff0c;明天学一下 我的递归思路和…

RPC简介和grpc的使用

文章目录 Rpc基本概念RPC 机制和实现过程RPC的机制的诞生和基础概念总结下RPC执行步骤&#xff1a; 安装gRPC和Protobuf安装proto 服务定义gRPC 优势 gRPC入门简单使用 代码仓库 Rpc基本概念 RPC&#xff08;Remote Procedure Call&#xff09;远程过程调用&#xff0c;是一种…

Qt之QGraphicsView —— 笔记1:绘制简单图元(附完整源码)

效果 相关类介绍 QGraphicsView类提供了一个小部件,用于显示QGraphicsScene的内容。QGraphicsView在可滚动视口中可视化。QGraphicsView将滚动其视口,以确保该点在视图中居中。 QGraphicsScene类 提供了一个用于管理大量二维图形项的场景。请注意,QGraphicsScene没有自己的视…