Ubuntu20.04配置深度学习环境

默认你已经完成Ubuntu20.04的安装,如果没安装的话可以参考其他博客,我的显卡是GTX1660Ti

一、NVIDIA显卡驱动安装

       大多数人在安装Ubutnu20.04系统的时候为了节约时间,通常不会勾选“图形或无线硬件,以及其他媒体格式安装第三方软件”,系统会默认使用Ubuntu社区自己开发的开源显卡驱动“nouveau”,而不是NVIDIA的显卡驱动,这里我主要讲如果没有勾选那个选项,后续该如何操作。

       实际上,Ubuntu为我们提供了可以下载NVIDIA显卡驱动的地方,打开“软件与更新”,点击“附加驱动”,此时会看到目前使用的显卡驱动是“使用X.Org X server - Nouveau display driver 来自 xserver-xorg-video-nouveau(开源)”,我们从中选择一个NVIDIA的专有驱动就好,比如我选择的是“nvidia-driver-470(专有)”,其中的470表示驱动版本,建议不要选太高,如图:

       点击“应用更改(A)”即可,少等片刻,此时会系统会自动安装NVIDIA的显卡驱动替换掉原来的nouvean显卡驱动。

二、安装CUDA

      2006年,NVIDIA公司发布了CUDA(Compute Unified Device Architecture),是一种新的操作GPU计算的硬件和软件架构,是建立在NVIDIA的GPUs上的一个通用并行计算平台和编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序,利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。它将GPU视作一个数据并行计算设备,而且无需把这些计算映射到图形API。操作系统的多任务机制可以同时管理CUDA访问GPU和图形程序的运行库,其计算特性支持利用CUDA直观地编写GPU核心程序。CUDA提供了对其它编程语言的支持,如C/C++,Python,Fortran等语言。只有安装CUDA才能够进行复杂的并行计算。

       CUDA版本要根据自己安装的显卡驱动来进行选择,打开一个终端,输入“nvidia-smi”可以查看显卡的信息,如图:

       其中Driver Version: 470.223.02表示显卡驱动版本,CUDA Version: 11.4表示支持的CUDA版本最高为11.4(高版本的CUDA能向下兼容),172MiB / 5944MiB分子表示目前使用的显存,分母表示显卡总显存,大概为6G。

       在CUDA Toolkit Archive | NVIDIA Developer下载CUDA安装包,我选择的是CUDA Toolkit 11.4.0,如图:

       操作系统选择Linux,架构选择x86_64,平台选择Ubuntu,我电脑装的是Ubuntu20.04,因此版本我选择20.04,安装方式选择runfile(local),然后下面会根据前面的选择生成安装命令,如图:

       终端执行第一条命令下载“cuda_11.4.0_470.42.01_linux.run”文件,如图:

       终端执行第二条命令回车安装CUDA显卡驱动,稍等片刻进入以下界面:

 选择“continue”后回车,进入下面界面:

输入“accept”后回车,进入下面界面:

因为我们之前已经安装了显卡驱动,因此需要点击空格键去掉安装显卡驱动的选项,然后选择install并回车。

前面密码我们已经输过,因此不用下意识输入密码,需要在这个界面等一会儿:

然后终端打印日志,完成CUDA安装: 

 此时可在终端输入命令nvcc -V查看cuda信息,可以看到:

这并不是因为系统没有安装CUDA,而是环境中没有罢了。千万不要执行sudo apt install nvidia-cuda-toolkit,否则可能会重新安装一个版本。而是需要配置CUDA的环境变量,输入gedit ~/.bashrc命令打开文件,在文件结尾输入以下语句,保存并source ~/.bashrc更新环境变量。

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

再次输入nvcc -V查看即可显示CUDA的版本:

至此,CUDA安装完成。

       然后可以测试一下CUDA。系统安装CUDA包括两个部分:NVIDIA CUDA GPU计算工具包NVIDIA CUD示例包两个部分。

       如下图所示,Ubuntu20.04系统会默认地将CUDA的NVIDIA GPU计算工具包安装到/usr/local/文件夹下面,可以看到该文件夹下多了两个文件夹cuda和cuda-11.4。

       对CUDA安装是否成功,需要进入NVIDIA CUDA示例包,其位于/home/fish/NVIDIA_CUDA-11.4_Samples内,在该文件夹下打开终端,并输入make。然后进入1_Utilities/deviceQuery文件夹,并在终端执行./deviceQuery 命令,如下result=PASS则表示安装成功。

三、安装cuDNN

       cuDNN是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库。如果要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。

       需要根据自己的CUDA版本安装对应的cuDNN,因此需要先安装CUDA才能安装cuDNN,点击Log in | NVIDIA Developer登录后可直接进入官网,我的CUDA版本为11.4,所以我选择了CUDA版本为11.4版本对应的cuDNN,如图下载Local Installer for Linux x86_64 (Tar):

       对下载的cudnn-linux-x86_64-8.9.6.50_cuda11-archive.tar.xz进行解压操作(右键“提取到此处”即可),然后进入文件夹:

cd cudnn-linux-x86_64-8.9.6.50_cuda11-archive/

        执行下面两个命令,复制文件:

sudo cp -d -r ./lib/* /usr/local/cuda-11.4/lib64/
sudo cp -r ./include/* /usr/local/cuda-11.4/include/

        赋予权限:

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

        查看信息:

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

四、安装Anaconda

       在Free Download | Anaconda下载最新版Anaconda的.sh启动文件,本文我用的是Anaconda3-2023.09-0-Linux-x86_64.sh,在Anaconda3-2023.09-0-Linux-x86_64.sh所在目录执行以下命令:

bash Anaconda3-2023.09-0-Linux-x86_64.sh

全程选择enter或者yes即可,下图证明安装完成:

此时新建一个终端,会直接进入base环境:

五、Anaconda的简单使用

5.1 管理环境

(1)创建虚拟环境

conda create -n env_name python=3.8

这表示创建python版本为3.8、名字为env_name的虚拟环境。

       创建后,env_name文件可以在Anaconda安装目录envs文件下找到。在不指定python版本时,自动创建基于最新python版本的虚拟环境。

(2)查看有哪些虚拟环境

conda env list

        所显示的列表中,前面带星号“*“的表示当前活动环境,如图:

(3)激活虚拟环境

conda activate env_name

(4)退出虚拟环境

conda deactivate

(5)删除虚拟环境

       执行以下命令可以将该指定虚拟环境及其中所安装的包都删除:

conda remove --name env_name --all

       如果只删除虚拟环境中的某个或者某些包则是:

conda remove --name env_name  package_name

(6)导出虚拟环境

       很多的软件依赖特定的环境,我们可以导出环境,这样方便自己在需要时恢复环境,也可以提供给别人用于创建完全相同的环境。

#获得环境中的所有配置
conda env export --name myenv > myenv.yml
#重新还原环境
conda env create -f  myenv.yml

5.2 管理包(package)

(1)查询看当前环境中安装了哪些包

conda list

(2)包的安装和更新

       在当前(虚拟)环境中安装一个包:

conda install package_name

       也可以用以下命令安装某个特定版本的包(以下例为安装0.20.3版本的numpy):

conda install numpy=0.20.3

       可以用以下命令将某个包更新到它的最新版本:

conda update numpy

(3)包的卸载

conda uninstall package_name

这样会将依赖于这个包的所有其它包也同时卸载。

5.3 conda install 与 pip install

感谢博主笨牛慢耕的分享,这一部分参考他的博客:

【精选】Anaconda conda常用命令:从入门到精通_conda命令_笨牛慢耕的博客-CSDN博客文章浏览阅读6.4w次,点赞149次,收藏719次。简要介绍Anaconda conda的常用命令的使用,掌握了这些基本命令应该足以应付日常的‘生活自理’吧_conda命令https://blog.csdn.net/chenxy_bwave/article/details/119996001#:~:text=Anaconda%20conda%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%EF%BC%9A%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A%201%201.%20%E5%89%8D%E8%A8%80%20Conda%E6%98%AFAnaconda%E4%B8%AD%E4%B8%80%E4%B8%AA%E5%BC%BA%E5%A4%A7%E7%9A%84%E5%8C%85%E5%92%8C%E7%8E%AF%E5%A2%83%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%9C%A8Windows%E7%9A%84Anaconda%20Prompt%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%BD%BF%E7%94%A8%EF%BC%8C%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%9C%A8macOS%E6%88%96%E8%80%85Linux%E7%B3%BB%E7%BB%9F%E7%9A%84%E7%BB%88%E7%AB%AF%E7%AA%97%E5%8F%A3%20%28terminal,%E7%9A%84%E7%AE%A1%E7%90%86%204.1%20%E6%9F%A5%E8%AF%A2%E5%8C%85%E7%9A%84%E5%AE%89%E8%A3%85%E6%83%85%E5%86%B5%20...%205%205.%20Python%E7%89%88%E6%9C%AC%E7%9A%84%E7%AE%A1%E7%90%86%20%E9%99%A4%E4%BA%86%E4%B8%8A%E9%9D%A2%E5%9C%A8%E5%88%9B%E5%BB%BA%E8%99%9A%E7%8E%AF%E5%A2%83%E6%97%B6%E5%8F%AF%E4%BB%A5%E6%8C%87%E5%AE%9Apython%E7%89%88%E6%9C%AC%E5%A4%96%EF%BC%8CAnaconda%E5%9F%BA%E7%8E%AF%E5%A2%83%E7%9A%84python%E7%89%88%E6%9C%AC%E4%B9%9F%E5%8F%AF%E4%BB%A5%E6%A0%B9%E6%8D%AE%E9%9C%80%E8%A6%81%E8%BF%9B%E8%A1%8C%E6%9B%B4%E6%94%B9%E3%80%82(1)两者区别

       conda可以管理非python包,pip只能管理python包。
       conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。
       conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
       conda安装的包会统一下载到一个目录文件中,当环境B需要下载的包,之前其他环境安装过,就只需要把之间下载的文件复制到环境B中,下载一次多次安装。pip是直接下载到对应环境中。
       conda只能在conda管理的环境中使用,例如比如conda所创建的虚环境中使用。pip可以在任何环境中使用,在conda创建的环境 中使用pip命令,需要先安装pip(conda install pip ),然后可以 环境A 中使用pip 。conda 安装的包,pip可以卸载,但不能卸载依赖包,pip安装的包,只能用pip卸载。

(2)能否混用

       首先,不建议混用。混用容易导致库的依赖关系出现混乱,然后突然哪天环境可能就崩了,安装不了新的包,无法进行conda update之类的。

       其次,由于conda的库确实不如pip的库丰富{很多包只在 pip 有:PYPI有15万可用包,而Anaconda repository中(使用conda命令安装)提供了1,500多个软件包,Anaconda cloud上(使用conda-forge或bioconda命令安装)的几千种其他软件包。所以有时候可能迫不得已要使用pip安装。切记,只有在conda install搞不定时才使用pip intall。 而且,最后使用虚拟环境进行环境隔离。

(3)安装在哪里

       conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。
       pip install xxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中。

(4)如何判断conda中的某个包是通过conda还是pip安装的(windows)

       执行​conda list,用pip安装的包显示的build项目为pypi。如下图所示:

5.4 conda configuration

       conda的配置文件为".condarc",该文件在安装时不是缺省存在的。但是当你第一次运行conda config命令时它就被自动创建了。".condarc"配置文件遵循简单的YAML语法。

(1)condarc文件在哪里

       执行conda info,会有信息显示如下所示:

(2)Channel管理

       追加conda-forge channel:

conda config --add channels conda-forge

       移除conda-forge channel:

conda config --remove channels conda-forge

       查询当前配置中包含哪些channels:

conda config --get channels

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python小白之“没有名称为xlwings‘的模块”

题外话:学习和安装Python的第一个需求就是整理一个Excel,需要读取和写入Excel 背景:取到的模板代码,PyCharm本地运行报错:没有名称为xlwings的模块 解决办法:这类报模板找不到的错,即是模块缺…

爆款元服务!教你如何设计高使用率卡片

元服务的概念相信大家已经在 HDC 2023 上有了很详细的了解,更轻便的开发方式,让开发者跃跃欲试。目前也已经有很多开发者开发出了一些爆款元服务,那么如何让你的元服务拥有更高的传播范围、更高的用户使用率和更多的用户触点呢?设…

ACM练习——第三天

今天继续练习C和ACM模式 在写题之前先了解一些新的知识 1.#include <algorithm> #include <algorithm> 是 C 标准库中的头文件之一&#xff0c;其中包含了一系列用于处理各种容器&#xff08;如数组、向量、列表等&#xff09;和其他数据结构的算法。这个头文件提供…

分享 8 个 4k 壁纸站点

今天分享 8 个 4k 壁纸站点&#xff0c;换换心情&#xff01; bz.zzzmh 网址&#xff1a;https://bz.zzzmh.cn/ 一个免费的极简壁纸网站。 可以在这里找到所有极简壁纸&#xff0c;不需要注册登录就可以下载&#xff0c;它不限制分类、尺寸&#xff0c;想要什么样的壁纸直接搜…

2023最新版本 从零基础入门C++与QT(学习笔记) -4- C/C++混合编程

&#x1f38f;在C兼容C只需要调用C头文件 &#x1f384;格式 &#x1f388; -1- extern(关键字) “C”{ }(花括号) &#x1f388; -2- 花括号里面填写要包含的头文件 &#x1f384;代码段格式 extern "C" {#include “stdio.h”#include “string.h” }&#x…

【Beyond Compare】大小写对比的设置

1.点击会话设置 2.把大小写打勾 3.对比效果

Linux常用命令用法及实现方式有哪些?

接上一篇&#xff0c;它来啦&#xff01; 5.文本文件编辑命令 (1)touch命令&#xff1a;touch命令用于创建空白文件或设置文件的时间&#xff0c;语法格式为“touch [参数] 文件名称”。 (2)mkdir命令&#xff1a;mkdir命令用于创建空白的目录&#xff0c;英文全称为“make dir…

微同城生活圈小程序源码系统 专业搭建本地生活服务的平台 带完整搭建教程

在互联网的影响下&#xff0c;越来越多的用户开始依赖手机进行日常生活。为了满足本地居民的需求&#xff0c;源码小编来给大家分享一款全新的微同城生活圈小程序源码系统。该系统旨在为本地居民提供一站式的生活服务解决方案&#xff0c;让您的生活更加便捷、高效。 以下是部…

StableDiffusion(四)——高清修复与放大算法

目录 一、高清修复与放大算法 1.高清修复 ①文生图 ②图生图 2.SD放大&#xff08;SD Upscale&#xff09; 3.附加功能放大 4.总结 一、高清修复与放大算法 1.高清修复 概念&#xff1a;分两步&#xff0c;第一步生成低分辨率的图画&#xff0c;第二步使用它指定的高清…

内网Jenkins 部署.net(dotnet)项目

一、前置条件 内网部署Jenkins&#xff0c;并安装好所需插件 此篇内容需承接内网搭建Jenkins自动化远程部署项目到Windows服务器_jenkins内网安装-CSDN博客 &#xff0c;才更好操作与理解 二、在Jenkins中创建项目 三、配置项目 General Source Code Management Build Envi…

源码级JVS低代码功能新增:动态配置、逻辑多级循环嵌套等等

低代码更新功能 新增: 1.下拉组件选项新增动态配置&#xff1b; 选项的内容可以根据特定的条件或数据源进行动态变化的功能&#xff0c;通过动态配置&#xff0c;用户可以灵活地设置下拉组件的选项内容&#xff0c;例如从数据库或其他数据源中获取选项数据&#xff0c;或者根…

AdaBoost:提升机器学习的力量

一、介绍 机器学习已成为现代技术的基石&#xff0c;为从推荐系统到自动驾驶汽车的一切提供动力。在众多机器学习算法中&#xff0c;AdaBoost&#xff08;Adaptive Boosting的缩写&#xff09;作为一种强大的集成方法脱颖而出&#xff0c;为该领域的成功做出了重大贡献。AdaBoo…

docker 安装xxl-job

1.拉取镜像 docker pull xuxueli/xxl-job-admin:2.4.0 2.docker镜像创建并运行 docker run -e PARAMS"--spring.datasource.urljdbc:mysql://xxxxx:3306/xxl_job?useUnicodetrue&characterEncodingUTF-8&autoReconnecttrue&serverTimezoneAsia/Shanghai&…

全彩LED显示屏的质量怎样判断

判断全彩LED显示屏的质量需要考虑多个方面&#xff0c;包括平整度、白平衡、可视角度、分辨率、亮度、可靠性和稳定性等。以下是一些建议&#xff0c;供你参考&#xff1a; 平整度&#xff1a;LED显示屏的表面平整度应在1mm以内&#xff0c;以保证显示图像不发生扭曲。局部凸起…

使用 requests 2.11 版本时的 Site ID 类型问题及解决方案

在使用ebaysdk-python库时&#xff0c;一些用户可能会遇到一个特定问题&#xff0c;这个问题与requests库的版本有关。具体问题是&#xff0c;当使用requests库的2.11版本时&#xff0c;用户需要在请求头中传递的值必须为字符串或字节类型&#xff0c;但是传入的值却是整数类型…

文件包含漏洞

文章目录 文件包含漏洞php中文件包含的语句文件包含动态包含 相关配置本地文件包含远程文件包含 漏洞原理特点 利用方法包含图片木马读取敏感文件 读取php源码执行php代码包含图片马写 shell包含日志文件包含防御 文件包含漏洞 ​ 程序开发人员通常会把可重复使用函数或语句写…

从零到一:抖音小程序开发全指南及预算规划

在数字时代&#xff0c;抖音小程序的开发成为企业实现品牌推广、服务提供的重要途径。本文将为您提供从零到一的抖音小程序开发全指南&#xff0c;包括预算规划以及一些关键的技术代码示例。 1. 项目准备 在开始抖音小程序开发之前&#xff0c;需要进行一些项目准备工作。 …

【git】git本地仓库命令操作详解

这篇文章主要是针对git的命令行操作进行讲解&#xff0c;工具操作的基础也是命令行&#xff0c;如果基本命令操作都不理解&#xff0c;就算是会工具操作&#xff0c;真正遇到问题还是一脸懵逼 1.操作逻辑图 本地仓库的命令操作关系图 2.基本命令操作 1.1建立一个gittest01文…

关于修改了mysql的my_conf文件之后,不能生效问题

个人名片&#xff1a; &#x1f405;作者简介&#xff1a;一名大三在校生&#xff0c;热爱生活&#xff0c;爱好敲码&#xff01; \ &#x1f485;个人主页 &#x1f947;&#xff1a;holy-wangle ➡系列内容&#xff1a; &#x1f5bc;️ tkinter前端窗口界面创建与优化 &…

功率放大器在生物医疗测试领域研究中的应用

生物医学相关测试&#xff0c;就是运用生物学及工程技术手段来研究和解决生命科学&#xff0c;特别是医学中的有关问题&#xff0c;是关系到提高医疗诊断水平和人类自身健康的重要工程领域。功率放大器作为生物医学领域相关实验平台的重要组成部分&#xff0c;在生物医学领域研…