【万字长文】【超详尽的配置教程】Anaconda配置深度学习环境教程 | Pytorch | Tensorflow | conda | pip | cuda | cudnn | torch

🙋大家好!我是毛毛张!
🌈个人首页: 神马都会亿点点的毛毛张

📌毛毛张今天分享的内容是如何配置深度学习环境,这是一个很复杂的问题🔥,希望毛毛张的文章🗎能够把问题讲清楚,帮助到大家!文章🗎很长!创作不易!记得1️⃣键3️⃣连!

文章目录

1 引言

  • 📌随着深度学习的火热🔥,越来越多的老师和学生都在入坑🕳️深度学习,然而入坑深度学习的第1️⃣步就是配置深度学习的环境,然而深度学习的配置却是一个说复杂🧶也不复杂、说不复杂也复杂🧶的过程。
  • 🔖毛毛张到目前为止已经配置了大约有十几次的深度学习环境,每次找的教程都不一定能完全解决所有问题正确的安装上,并且每次的问题都还各不相同,所以每次都是见招拆招🎖️,所以毛毛张想结合自己的经历来把深度学习的环境配置问题尽量讲清楚,帮助大家能够尽量少走很多弯路🚴‍♂️
  • ✅毛毛张这一篇博客主要讲述的是Windows下的深度学习配置教程,也会🌟附带和Linux相关的配置教程。
  • 🌈由于现在的深度学习代码主要是用Pytorch写的,所以在这里主要以介绍Pytorch的安装为主但是Tensorflow的安装也相差不大
  • 由于文章较长,涉及的内容和注意事项⚠较多,毛毛张真心💖建议大家先熟悉了全篇的内容之后再动手开始配置深度学习环境
  • 文章结构:
    • 第二部分毛毛张讲述了在Windows下如何安装Anaconda以及需要注意的避坑事项
    • 第三部分和第四部分毛毛张主要介绍的是在配置深度学习环境之前需了解的前置知识
    • 第五部分才正式开始教大家如何配置深度学习环境
    • 第六部分是介绍在配置好深度学习环境之后一些使用的相关设置

2 Anaconda安装与配置|解决新建Anconda虚拟环境总是安装在C盘的问题

  • 配置深度学习环境的第一步就是安装好Anaconda,所以把这一部分叫作扣好人生的第一粒扣子🎲,首先分享Anaconda的安装教程❗
  • 如果你发现在根据毛毛张下面的步骤,已经踩坑了的话,那不妨先跳到这一章的第2.2节学习如何完全卸载已经安装好的anaconda

2.1 Anaconda安装与配置【扣好人生的第一粒扣子】

2.1.1 概述

  • Anaconda简介: 它是一个开源的PythonR语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),Anaconda致力于简化软件包管理系统和部署。它能够给不同版本要求的深度学习环境建立单独的“房间”,以便进行管理,我们每个“房子”称作虚拟环境。
  • 背景: 配置一个深度学习的虚拟环境以及相关的扩展包大概需要十几G的内存空间,然而默认的虚拟环境存放地址为C盘。如果是要配置几个深度学习的虚拟环境C盘是肯定招架不住的,就目前毛毛张配置的两个深度学习环境PytorchTensorflow来说整个Anaconda文件夹已经快有30GB内存了。
    图片
  • 解决方案: 所以如果不想将虚拟环境以及相关的扩展包安装在C盘,就一定要更改虚拟环境默认安装路径和缓存包存放路径。然而为了能够成功改虚拟环境默认安装路径和缓存包存放路径,就必须要在Anaconda安装的时候,在安装模式的选择上选择“仅为我”安装,如下图
    图片

2.1.2 安装步骤

1️⃣安装Anaconda

1.下载Anaconda安装包

2.右键以管理员方式运行下载好的Anaconda安装包

3.点击 【Next】
图片
4.点击 【I Agree】;
图片

5.先点击 【Just Me】,然后点击 【Next】;

说明:这是非常重要的一步,记得选择【Just Me】,以便后面能成功更改虚拟环境的安装位置

图片

6.更改安装路径,并记住,然后点击 【Next】;

图片

7.勾选推荐的,不推荐的就不要勾选,然后点击 【Install】;

图片

说明:

  • Add Anaconda3 to my PATH environment variable:该选项是将Anaconda3添加到环境变量,没有必要添加,具体原因毛毛张暂时还解释不清楚,即使要添加,安装完成之后也可以添加,所以根据自己个人情况做选择,这样在cmd命令行窗口就能打开虚拟环境

  • Register Anaconda3 as my default Python 3.11:该选项是将Anaconda3安装的Python版本作为默认Python编译器,如果之前没有安装Python可以勾选;这也说明Anaconda再安装的时候会默认安装最新的Python编译器,不需要再单独安装Python

  • Clear the package cache upon completion:该选项是在安装完成后清理包缓存,当然要勾选的啦!

8.这一步时间比较长,耐心等待

图片

9.安装完成,点击 【Next】

图片

10.点击 【Next】

图片

11.取消勾选,点击 【Finish】.

图片
2️⃣更改虚拟环境安装路径和扩展包路径

1.初始化:

  • 更改虚拟环境默认安装路径和扩展包存放路径,需要修改.condarc文件,一般情况下该文件保存在 “C:\Users\用户名” 目录下。

  • 但是第一次安装Anaconda时会找不到该文件,因为condarc文件默认是不会自动创建的,在 【Anaconda Prompt】 中输入如下命令可以 创建并初始化该文件

    conda config
    
图片

更多condarc文件的相关介绍可以查看毛毛张的这篇推文:“.condarc文件”

2.查看虚拟环境默认安装路径和扩展包存放路径:

conda config --show

该命令用于显示Anaconda运行期间配置,如下图所示:

图片 图片 图片

说明:

  • env_dirs为虚拟环境目录
  • pkgs_dirs为扩展包目录

3.用记事本打开默认的condarc文件,将如下代码复制粘贴到condarc文件中,可以直接覆盖condarc文件中的代码,然后保存;

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - defaults
show_channel_urls: true
envs_dirs:
  - D:\IDE\Anaconda\envs(替换为自己的路径)
pkgs_dirs:
  - D:\IDE\Anaconda\pkgs(替换为自己的路径)
图片

4.最后再用第2步的命令conda config --show查看Anaconda的配置,发现顺序已经发生了变化,大功告成!

说明:对比第2步中的env_dirs和pkgs_dirs,发现虚拟环境目录顺序已经变更为D盘第一个,扩展包目录就只会安装在D盘了。

图片

2.1.3 检验

1️⃣检验Anaconda3是否安装成功

1.返回Windows桌面,点击开始选项,打开所有应用,看到如下图所示界面,基本上表明Anaconda安装成功了!

图片

2.打开Anaconda提供的命令行窗口 【Anaconda Prompt】

图片

3.如下图所示激活Python,正常输出则表明Anaconda安装成功!

图片
2️⃣检验路径是否更改成功

1.在 【Anaconda Prompt】 中输入如下命令:

conda config --show

说明:发现红色方框内的安装路径已经更改为自己想要的顺序,表明更改成功!

图片

2.2 怎样卸载anaconda?【未虑胜,先思败】

2.2.1 前言

  • 当你不能更改安装虚拟环境在C盘的时候,并看到这篇文章的时候,那么说明你一开始选择的时候有可能选择错了,但是这个安装是不可逆的,所以毛毛张猜测你肯定需要一个卸载教程,我知道你很急但是你别急,下面毛毛张就告诉你如何卸载Anaconda!

2.2.2 卸载Anaconda

  • 通常卸载软件,直接运行软件安装文件夹下的uninstall.exe程序就可以了
  • 对于Anaconda也一样,可以直接运行安装目录下的Uninstall-Anaconda3.exe即可
  • 但是这样卸载并没有完全卸载,还会有配置文件,如果需要完全卸载得参照下面的步骤进行卸载。

2.2.3 彻底卸载Anaconda

  1. 首先打开Anaconda Prompt,然后安装anaconda-clean
    conda install anaconda-clean
    
  2. 执行如下命令进行卸载
    anaconda-clean --yes
    
    • 完成上述步骤后并未完全卸载Anaconda,继续执行如下步骤。
  3. 运行安装目录下的Uninstall-Anaconda3.exe程序即可,这样就成功地将Anaconda卸载干净了

3 Anaconda基础知识【磨刀不误砍柴工】

3.1 conda相关命令

3.1.1 虚拟环境管理

  • 查看现有的虚拟环境

    • 下面三种方式都行
    conda info --env 
    conda info -e
    conda env list
    
  • 创建虚拟环境

    • 只创建虚拟环境
      conda create --name env_name(虚拟环境名)
      conda create -n env_name(虚拟环境名)
      
    • 创建虚拟环境并安装指定的python版本
      # 创建环境,后面的python=3.6是指定python的版本
      conda create --name env_name python=3.6
      conda create -n env_name python=3.6
      
  • 激活某个虚拟环境

    conda activate env_name
    
  • 关闭某个虚拟环境

     conda deactivate
    
  • 删除某个虚拟环境

    conda remove --name env_name --all
    conda remove -n env_name --all
    
  • 复制某个虚拟环境

    conda create --name new_env_name --clone old_env_name
    
  • 清理虚拟环境:conda clean是一个conda命令,用于清理conda的缓存、不必要的软件包和索引文件,以释放磁盘空间并保持环境的清洁。它有以下几个选项:

    1. conda clean --all: 删除conda安装的软件包和缓存,不再需要的索引文件和不再需要的缓存。
    2. conda clean --index-cache: 删除conda环境中不再需要的索引文件。
    3. conda clean --packages: 删除conda安装的软件包和缓存。
    4. conda clean --source-cache: 删除conda的源缓存。
    5. conda clean --tarballs: 删除conda下载的软件包的tarball文件。

    需要注意的是,执行 conda clean 命令时需要谨慎,因为它将会清理掉与当前活动环境无关的所有缓存和软件包。

    因此,在使用此命令之前,请确保您了解清楚它的各个选项以及其对应的操作,并慎重考虑清理哪些缓存和软件包。

3.1.2 包管理

  • 列出当前环境下所有安装的包以及版本

    conda list
    
  • 列出指定环境下的所有包

    conda list -n env_name
    
  • 为指定环境安装某个包或库

    conda install --name target_env_name package_name
    conda install -name target_env_name package_name
    # 例如:
    conda install scrapy=1.5.0
    
  • 更新指定环境某个包或库

    conda update -n target_env_name package_name
    # 例如:
    conda update scrapy
    
  • 更新所有包和库

    conda update --all
    
  • 删除指定某个环境的包或库

    conda remove -n target_env_name package_name
    conda uninstall -n target_env_name package_name
    
  • 删除没有用的包或库

    conda clean -p
    

3.2 配置镜像源

3.2.1 前言

  • Anaconda 同时支持 Conda 和 Pip 两种安装方式

    1. Conda
      • Conda 是 Anaconda 的默认包管理工具,是一个跨平台的包管理系统和环境管理系统。
      • Conda 不仅可以安装 Python 包,还可以安装其他的软件包、依赖项和系统库。它可以管理整个环境,包括安装、升级、删除软件包和创建、导出、导入环境等操作。
      • Conda 提供了自己的软件源(Anaconda repository)和虚拟环境(environment)管理功能,使得环境配置更加灵活和方便。
      • Conda 对于管理 Python 包及其依赖项以及环境配置方面非常方便,特别适用于科学计算和数据科学工作。
    2. Pip
      • Pip 是 Python 的官方包管理工具,用于安装和管理 Python 包。虽然 Pip 是 Python 自带的工具,但它也可以用于 Anaconda 环境中。
      • Pip 通常用于安装那些没有包含在 Conda 的软件源中的 Python 包,或者需要安装最新版本的包。
      • Pip 的优势之一是其庞大的软件包库,几乎包含了 Python 生态系统中的所有第三方包。
      • 一些开发者和用户更习惯使用 Pip 进行 Python 包的管理,因为它是 Python 的官方工具,并且与 Python 社区更加紧密相关。
  • Conda 和 Pip 的默认软件源通常是国外的源,这可能导致下载速度较慢或者在某些情况下无法连接到默认的源。为了解决这个问题,你可以配置国内的镜像源来加速下载速度或者确保连接稳定。

  • 由于众所周知的原因,如果没有vpn我们无法访问国外的网站。但是由于深度学习环境配置过程中的许多包都是国外提供的,因此网站的服务器也在国外,导致我们无法直接访问或者下载很慢。而镜像源就是把国外官方的源作了一个镜像,使得你可以在该镜像源网站上这下载软件。

  • 配置镜像源(mirror source)对于使用 Conda 和 Pip 这两个包管理工具来说是很重要的,原因如下:

    • 加速下载速度:默认的软件源可能位于国外,下载速度可能受到网络带宽和地理位置的影响,配置镜像源可以选择一个更接近你的地理位置或网络环境更快的源,从而加速软件包的下载速度。
    • 解决网络访问问题:有时候默认的软件源可能无法访问,或者访问速度非常慢,配置镜像源可以解决这些网络访问问题,确保你能够正常地获取软件包
    • 减少网络波动导致的失败:在下载大型软件包时,由于网络波动或丢包,可能会导致下载失败或者下载的软件包损坏。配置一个稳定的镜像源可以减少这种情况的发生。
    • 选择可信赖的镜像源:某些官方的镜像源由于受到官方支持,因此更为可信赖,配置官方镜像源可以提高软件包的安全性和稳定性。
  • 下面毛毛张将讲述一下如何分别配置Conda安装命令和Pip安装命令的镜像源。在分享配置Conda镜像源的时候,首先需要介绍一下.condarc文件

  • 看完下面的内容大家应该会理解一句话:配置镜像源的过程就是就是修改.condarc文件的过程

3.2.2 .condarc文件

  • 简介: .condarc文件叫运行期配置文件,是Anaconda 的配置文件,用于保存conda 安装命令的各种参数和选项。该文件通常存储在用户的主目录下(例如在 Unix/Linux 系统中是 ~/.condarc,在 Windows 系统中是 C:\Users\username\.condarc),它可以包含各种配置信息,例如默认的镜像源、频道、环境路径等。
  • 但是第一次安装Anaconda时会找不到该文件,因为.condarc文件默认是不会自动创建的,只有当用户第一次使用conda config命令时,系统才会自动创建.condarc文件
  • 所以我们配置的相关信息就会保存在.condarc文件中,
1️⃣.condarc文件初始化
  • 安装Anaconda时会找不到该文件,因为condarc文件默认是不会自动创建的,打开Anaconda自带的命令提示窗口【Anaconda Prompt】输入如下命令即可创建

    conda config
    
    图片

    图片

2️⃣配置.condarc文件
2.1 命令行配置.condarc文件
  • 这种方式就是打开【Anaconda Prompt】命令行,在命令行中配置

  • 配置conda主要有两种语法

    • 一种是添加:

      conda config --add [options] [parameters]
      
    • 一种是设置:

      conda config --set [options] [yes|no]
      
  • 🌰案例演示:

    # 1.添加通道(默认已经包含defaults)
    conda config --add channels defaults
    # (会报错显示已经含有defaults)
    # 默认通道就是在使用conda安装命令的时候默认使用国外的源,因此可能访问失败或者网速比较慢
    # 所以就需要配置镜像源,即添加镜像源
    
    # 2.添加镜像地址
    conda config --add channels [镜像地址]
    # 由于Anaconda的官方源在国外,在下载相关库的时候会比较慢,因此可以使用国内的镜像源来进行下载
    # 添加清华镜像的国内通道
    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/main
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
    
    # 3.设置搜索时显示通道地址show_channel_urls
    conda config --set show_channel_urls yes 
    # 改命令的作用是用来设置是否显示安装的包和库的安装来源,可以设置上
    
    # 4.设置ssl_verify
    conda config --set ssl_verify no
    # 毛毛张还没有该命令的完美解释,安装过程中也没用遇到过相关问题;
    # 所以该命令大家先不要使用为好,或者设置为:no
    
    # 5.显示现有安装源、镜像源
    conda config --show channels
    
    # 6.恢复默认安装源
    conda config --remove-key channels
    
    # 7.移除某个安装镜像源
    conda config --remove channels https://mirrors.cloud.tencent.com/anaconda/pkgs/pro/
    
    # 8.设置虚拟环境安装目录envs_dirs
    conda config --add envs_dirs [路径名] 
    conda config --add envs_dirs D:\IDE\Anaconda\envs
    # 改命令的作用就是修改虚拟环境的创建目录
    
    # 9.设置安装包存放目录pkgs_dirs
    conda config --add pkgs_dirs [路径名]
    conda config --add pkgs_dirs D:\IDE\Anaconda\pkgs
    # 改命令的作用就是修改虚拟环境安装的时候一些公共的相关的包和库的目录
    
2.2 记事本直接修改配置文件
  • .condarc文件在Windows系统下的路径一般默认为:C:\Users\username\.condarc,用记事本打开如下:

    channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      - defaults
    ssl_verify: true
    show_channel_urls: true
    

    毛毛张打开的是已经配置过后的文件,上面这个配置的是清华镜像源,如果大家没有配置的话打开可能有一些不一样

  • 我们可以直接利用记事本打开编辑该文件直接进行修改,下面是添加了清华源,同时修改了envs_dirs和pkgs_dirs路径之后的结果

    channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      - defaults
    ssl_verify: true
    show_channel_urls: true
    envs_dirs:
      - D:\IDE\Anaconda\envs
    pkgs_dirs:
      - D:\IDE\Anaconda\pkgs
    
2.3 报错
  • 如果在Linux中出现了如下的报错:

    在这里插入图片描述

  • 需要修改文件的权限,让它可以被修改,通过如下命令可以解决:

    sudo chown -R pc /home/pc/.condarc
    sudo chown -R pc /home/pc/anaconda3 
    # pc ,替换你的用户名
    # /home/pc/anaconda3替换为你的anaconda路径
    

3.2.3 配置conda镜像源

  • 下面的配置操作均在【Anaconda Prompt】中进行
  • 在配置的镜像源中,毛毛张觉得清华的镜像源比较好用
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/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes 	#设置搜索时显示通道地址
2.配置中科大镜像源
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 #设置搜索时显示通道地址
3.配置上交镜像源
conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes #设置搜索时显示通道地址
4.配置阿里镜像源
conda config --add channels https://mirrors.aliyun.com/pypi/simple/
5.配置豆瓣镜像源
conda config --add channels http://pypi.douban.com/simple/ 
6.显示添加的镜像源
conda config --show channels
conda config --show
7.删除镜像源,换回默认源
conda config --remove-key channels

3.2.4 配置pip镜像源

  • 国内常用镜像源
    • 清华大学 (推荐)https://pypi.tuna.tsinghua.edu.cn/simple/
    • 阿里云:http://mirrors.aliyun.com/pypi/simple/
    • 中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
    • 中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
    • 豆瓣:http://pypi.douban.com/simple/
  • 在使用pip安装的时候,毛毛张主要使用的清华镜像源,所以这里以清华镜像源的配置案例做演示
1.临时使用
  • 语法:pip install 包名 -i 镜像源
    # 示例:🌰
    pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
2.永久修改
Windows系统
  1. User目录中创建一个pip目录,如:C:\Users\mmz\pip
  2. pip目录下新建文件pip.txt并该后缀为ini,即:pip.ini
  3. pip.ini中添加如下内容:
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple 
    [install]
    trusted-host = https://pypi.tuna.tsinghua.edu.cn
    

添加trusted-host参数是为了避免麻烦,否则使用的时候可能会提示不受信任

Liunx系统
  • 命令行操作:
    # Linux中先升级pip为最新版本,再改源
    pip install pip -U
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 手动操作:在Linux文件管理器中操作
    1. 进入根目录,新建目录.pip/
    2. 并在该目录下新建文件pip.conf
    3. 粘贴如下内容到pip.conf文件中,保存并退出。
      [global]
      index-url = https://pypi.tuna.tsinghua.edu.cn/simple
      [install]
      trusted-host = https://pypi.tuna.tsinghua.edu.cn
      
  • Linux命令行中操作(可以帮助大家熟悉命令行操作):
    • 首先需要切换到根目录下,切换到该目录下需要root权限,因此使用命令sudo su然后输入密码获得权限就会自动切换到root权限;
    • 并用vim编辑器编辑~/.pip/pip.conf文件(如果没有则新建一个);
      (base) mmz@mmz:~$ sudo su
      [sudo] password for mmz:(输入密码)
      root@mmz:/home/mmz# vim ~/.pip/pip.conf
      
    • 并在用vim编辑器打开的pip.conf中输入如下内容:
      [global]
      index-url = https://pypi.tuna.tsinghua.edu.cn/simple
      [install]
      trusted-host = https://pypi.tuna.tsinghua.edu.cn
      

    添加trusted-host参数是为了避免麻烦,否则使用的时候可能会提示不受信任

4.CUDA与cuDNN的安装与配置【前置知识】

4.1 概述

  • 如果在配置深度学习环境时,想利用安装GPU版本时,一定逃不开三个概念就是显卡驱动CUDACUDNN
  • 现在的教程一上来就是教你一个个单独安装这三个组件,但是随着毛毛张多次配置深度学习环境的经验中发现,并不需要一个个去单独安装。
  • 而且不理清这相关的概念,在安装的过程中很容易出问题

4.2 基础知识

  • 毛毛张在这里一些基础概念进行介绍,相当于一个知识的扫盲,以便大家在安装的过程中理不清这之间的关系,而导致安装错误

4.2.1 两个概念

GPU:

  • 英文全称为Graphics Processing Unit,中文名为图形处理器
  • 它是一种在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器
  • 它是NVIDIA公司在1999年8月发表NVIDIA GeForce 256绘图处理芯片时首先提出的概念,在此之前,电脑中处理影像输出的显示芯片,通常很少被视为是一个独立的运算单元

CUDA:

  • 英文全称为Computed unified device architecture,中文名为统一计算架构
  • 它是一种并行计算平台和编程模型,允许开发者使用C、C++、Python等编程语言编写GPU加速的应用程序
  • 编写的程序只能在NVIDIAGPU上运行,只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用
  • CUDA 包含两个主要组件:CUDA DriverCUDA Toolkit。它们在使用 NVIDIA GPU 进行计算和图形处理时发挥不同的作用。CUDA Driver 提供了 GPU 与操作系统之间的通信接口,而 CUDA Toolkit 包含开发和优化 CUDA 应用程序所需的工具和库
  • 后面再介绍的时候,如果使用的CUDA更多指的是CUDA Toolkit

4.2.2 两个组件

CUDA Driver:

  • 也可以称作NVIDIA Driver,中文名为显卡驱动
  • 它是安装在计算机上的软件,实现与NVIDIA的GPU通信,控制GPU的功能和性能,并将计算机的图形输出显示在显示器上
  • 驱动程序允许操作系统和应用程序与GPU进行交互,并利用GPU的计算能力进行图形渲染和加速
  • 一般购买的Windows带显卡的电脑都会默认这个组件,在命令行中输入nvidia-smi命令即可查看是否安装
    image-20240622112744968

CUDA Toolkit工具包:

  • CUDA Toolkit 是 NVIDIA 提供的开发工具包,包含用于在 NVIDIA GPU 上进行 CUDA 程序开发的编译器、调试器及其他相关软件工具和库。
    CUDA Toolkit 由以下组件组成:
    • Compiler:该组件提供 CUDA-C 和 CUDA-C++ 的编译器 nvcc,位于 bin/ 目录下。nvcc 构建在 NVVM 优化器之上,而 NVVM 优化器本身基于 LLVM 编译器基础架构。开发人员可以使用 nvvm/ 目录下的 Compiler SDK 来直接针对 NVVM 进行开发。
    • Tools:提供 Profiler(分析器)、Debuggers(调试器)等工具,这些工具可以从 bin/ 目录中获取。
    • Libraries:提供科学计算库和实用程序库,可以在 lib/ 目录中找到,它们的接口在 include/ 目录中可获取。
    • CUDA Samples:该组件包含展示如何使用各种 CUDA 和库 API 的代码示例。在 Linux 和 Mac 上,这些示例🌰位于 samples/ 目录中;在 Windows 上,位于 C:\ProgramData\NVIDIA Corporation\CUDA Samples 目录中。
    • CUDA Driver:运行CUDA应用程序需要至少一个支持CUDA的GPU和与CUDA Toolkit兼容的驱动程序。每个版本的CUDA Toolkit都对应一个最低版本的 CUDA Driver。如果安装的CUDA Driver版本低于推荐版本,可能会导致应用程序无法正常运行。CUDA Driver是向后兼容的,这意味着用特定版本 CUDA编译的应用程序可以在后续版本的CUDA Driver上继续运行。为了方便,安装CUDA Toolkit时通常会默认安装CUDA Driver。
  • 这个组件在购买的电脑上是不会默认安装的,也可以通过nvcc -V命令来查看是否安装了CUDA Toolkit和安装的版本

注意:

  • 一般带显卡的电脑会默认安装显卡驱动,而在安装CUDA Toolkit工具包也会安装显卡驱动,那么会不会冲突呢?

    • 答:既会也不会,一台电脑可以安装不同版本的显卡驱动,但是要满足已经安装的显卡驱动 ≥ 安装的CUDA Toolkit所需要的最低的显卡驱动版本
  • NVIDIA Driver版本和CUDA Toolkit版本之间的安装对应关系可以官网:https://docs.nvidia.com/deploy/cuda-compatibility/#minor-version-compatibility
    image-20240622113835751

    image-20240622113845357
  • 这也意味着我们需要先安装显卡驱动,再来安装CUDA Toolkit工具包,以免冲突

4.2.3 两个命令

nvidia-smi
  • nvidia-smi命令是由Driver API提供的,用于支持Driver API的必要文件有libcuda.so,它依赖于安装的显卡驱动程序,而显卡驱动程序中包含了支持的必要文件libcuda.so
  • 由于CUDA Toolkit 会安装CUDA Driver,如果Driver APIRuntime API的CUDA版本不一致,使用该命令显示的显卡驱动版本是系统当前安装的独立显卡驱动版本,而不是CUDA Toolkit安装目录中的CUDA Driver版本。
nvcc -V
  • nvcc命令是由Runtime API提供的,用于支持Runtime API的必要文件有libcudart.so以及nvcc,它是由安装的CUDA Toolkit提供的
  • 其中nvcc命令是安装的CUDA Toolkit组件中Compiler工具提供的,并且该命令只知道它自身构建时的CUDA Runtime版本,而不知道安装的显卡驱动版本,甚至不知道是否安装了显卡驱动。

4.2.4 一个加速包

cuDNN:

  • 英文全称为CUDA Deep Neural Network library
  • 它是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库
  • 如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库
  • 可以把CUDA Toolkit看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等;而cuDNN就相当于工作的工具,比如它就是个扳手;但是CUDA Toolkit这个工作台买来的时候,并没有送扳手;想要在CUDA Toolkit上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来;这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多
  • 如果要安装cuDNN,不能随便安装,CUDA ToolkitcuDNN两个的版本有对应关系,对应版本关系可以访问官网:https://developer.NVIDIA.com/rdp/cudnn-archive#a-collapse742-10
  • 最新的版本对应关系如下图
    image-20240622115436956

4.2.5 总结

上面的介绍是毛毛张根据自己的理解以及综合参考文献中的内容综合之后的结果,下面毛毛张将总结几个关键点:

1️⃣NVIDIA DriverCUDA Driver都被称作显卡驱动,只是因为所在安装包不同,前缀名称不同

2️⃣对于有显卡的计算机来说,NVIDIA显卡驱动是必需的,它负责管理GPU并提供图形输出功能;而CUDA Toolkit是一个额外的开发工具包,用于利用NVIDIA GPU进行并行计算和GPU加速的开发和优化。如果你只需要使用NVIDIA显卡进行图形渲染和显示,只需安装NVIDIA显卡驱动即可;如果你计划进行GPU计算和并行编程开发,那么安装CUDA Toolkit将为你提供所需的软件工具和库

3️⃣配置深度学习环境时,NVIDIA显卡驱动CUDAcuDNN三个组件都需要安装对应符合要求的版本才能正常工作

4️⃣CUDA Toolkit安装版本所需要的最低的显卡驱动版本需要 ≤ 安装的显卡驱动版本,不然CUDA新功能调用的程序底层的显卡驱动不支持,会导致程序出错

5️⃣CUDA版本和cuDNN的版本存在一一对应的关系,不能随便安装

4.3 我们需要安装什么?

  • 在上面毛毛张对于显卡驱动、CUDA和cuDNN进行了一个简单的介绍。简单来说,显卡驱动是用来和GPU进行交互的;CUDA是用来编写GPU加速的应用程序

  • 问题1:那么我们需要都安装吗?

    • 答:显卡驱动是必须安装的,而 CUDA Toolkit 不一定需要单独安装。因为在使用 Anaconda 安装 PyTorchTensorFlow 的 GPU 版本时,Anaconda 会自动安装相应版本的 CUDA ToolkitcuDNN。这意味着你不需要手动安装 CUDA Toolkit,如下图所示
    • 所以下次当你再配置深度学习环境的时候就不需要单独去安装CUDA Toolkit了
  • 问题2:但是Anaconda安装的CUDA Toolkit和通过NVIDIA官网安装的CUDA Toolkit工具包是一样的吗?

    • 答:不一样的
    • 具体而言,NVIDIA官方提供的CUDA Toolkit是一个完整的工具安装包,其中提供了NVIDIA 驱动程序、开发CUDA程序相关的开发工具包等可供安装的选项。使用NVIDIA官网提供的CUDA Toolkit可以安装开发CUDA程序所需的工具,包括CUDA程序的编译器、IDE、调试器等,CUDA程序所对应的各式库文件以及它们的头文件。
    • 但对于Pytorch之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用CUDA的动态链接库支持程序的运行(Pytorch本身与CUDA 相关的部分是提前编译好的),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。
    • 因此,Anaconda在安装Pytorch等会使用到CUDA的框架时,会自动为用户安装CUDA Toolkit,其主要包含应用程序在使用CUDA相关的功能时所依赖的动态链接库,不会安装驱动程序。在安装了CUDA Toolkit后,只要系统上存在与当前的CUDA Toolkit所兼容的NVIDIA驱动,则已经编译好的 CUDA相关的程序就可以直接运行,而不需要安装完整的NVIDIA官方提供的CUDA Toolkit
  • 通过Anaconda安装的应用程序包位于安装目录下的/pkg文件夹中,如毛毛张在Windows下的路径为D:\IDE\Anaconda\pkgs,用户可以在其中查看Anaconda安装的 CUDA Toolkit的内容,如下图所示。在大多数情况下,通过Anaconda安装的CUDA Toolkit是可以满足Pytorch等框架的使用需求的。但对于一些特殊需求,如需要为 Pytorch 框架添加CUDA相关的拓展时,需要对编写的CUDA相关的程序进行编译等操作,则需安装完整的NVIDIA官方提供的CUDA Toolkit

    image-20240622160149734

image-20240622160946673

看完上面的内容,可能你没有记住多少,但是一定记住的一点就是:

如果仅仅是为了学习深度学习,不需要单独去安装CUDA Toolkit,而是使用Anaconda默认安装的CUDA Toolkit版本就行

4.4 安装教程

  • 上面介绍了不需要单独去安装CUDA Toolkit,但是显卡驱动是一定需要安装的,所以毛毛张在这里主要介绍显卡驱动的安装与卸载
  • 但是大家不要一上来就安装显卡驱动,只有以下两种情况需要安装显卡驱动:
    • 你的电脑有显卡,但是没有安装显卡驱动
    • 你的配置的深度学习环境需要的CUDA版本所需要的最低显卡驱动版本高于你的目前的显卡驱动的版本
  • 查看电脑是否安装了显卡驱动,在命令行输入nvidia-smi命令即可查看你是否安装了显卡驱动以及安装的版本
    image-20240622162503553

4.4.1 安装显卡驱动

1️⃣卸载显卡驱动

未虑胜,先思败,在介绍安装显卡驱动之前,毛毛张先来介绍如何卸载显卡驱动

1.右键点击此电脑,选择管理

image-20240622163641970

2.点击设备管理器

image-20240622164242054

3.展开显卡适配器,找到显卡设备,右键选择该显卡选择卸载设备(如果您是独显+集显双显卡,请卸载独立显卡)

image-20240622164114706

4.勾选“删除此设备的驱动程序软件”,点击“卸载”按钮,这时候会提示“正在卸载设备”

image-20240622164449700
2️⃣安装显卡驱动

1.首先明确电脑自带的显卡版本,按下Win + R,在弹出的窗口中输入DxDiag并点击确定

image-20240622164918329

2.在弹出的DirectX诊断工具启动界面,点击显示标签,显卡的名称与制造商会显示在设备栏位中,而驱动程序的版本则会显示在驱动程序栏位中。可以看到毛毛的笔记本是NVIDIA的3060显卡,由于毛毛张以及安装了显卡驱动,所以显示了版本

image-20240622165324395

3.去NVIDIA官网下载显卡驱动,Nvidia驱动程序下载官网链接:GeForce® 驱动程序

image-20240622165702758

4.根据自己的显卡类型,然后点击开始搜索,就会显示适配你的显卡的最新的显卡驱动,下面是毛毛张的选择

image-20240622170026811

5.选择合适的版本进行下载,搜索到的一类是GeForce Game ReadyNVIDIA Studio,随便选择一个均可,点击获取下载(如果用电脑进行深度学习,那么选择Studio 驱动程序 会更合适)

image-20240622170130630

6.点击立即下载

image-20240622170540806

7.然后双击运行下载的安装包

image-20240622170816512

8.直接选择默认安装路径,点击OK

在这里插入图片描述

9.等待安装

在这里插入图片描述

image-20240622171636392

10.如果需要经常更新显卡驱动,则选择NVIDIA图形驱动程序,否则选NVIDIA显卡驱动和GeForce Experience,毛毛张这里选择安装显卡驱动(就是图形驱动)和 Geforce Experience(显卡驱动自动更新程序),点击同意并继续。不过显卡驱动不建议经常更新,驱动程序不是越新越好,而且符合硬件上市时间段的驱动才是最适合这个硬件的驱动程序,过高的驱动程序会引起显卡工作异常

image-20240622171658661

11.选择精简,点击下一步

image-20240622171714364

12.直至安装完毕,重启电脑,在终端输入如下指令查看电脑显卡驱动信息

nvidia-smi

4.4.2 安装CUDA Toolkit

  • 在前面介绍过,在配置深度学习环境的时候,如果安装的是GPU版本的PyTorch或者Tensorflow会默认给我们安装CUDA ToolkitcuDNN这两个包
  • 但是如果你需要用CUDA用来编写GPU加速的应用程序,那么需要安装
  • 毛毛张在这里就不单独介绍如何安装CUDA,而是转载一个别的网站写的比较好的博客:https://www.codetd.com/article/15294327

4.5 版本选择

  • 配置深度学习环境选择版本是一个既复杂又不复杂的问题

  • 原则1: 如果已经安装了适配自己的显卡的最新版本的显卡驱动之后一般就不要随便更新了

  • 原则2: 根据显卡驱动的版本来判断自己可以安装的最高的CUDA版本

    • 一般安装了显卡驱动之后在命令行输入nvidia-smi命令可以查看电脑支持的最高CUDA版本,如下图所示,但不代表安装的CUDA Toolkit的版本
      在这里插入图片描述
  • 原则3: 根据CUDA版本来选择对应的cuDNN版本

  • 上面列举了三个原则,但是由于在配置GPU版本的深度学习环境的时候只要在官网选择对了对应版本的PyTorch版本就会正常安装对应的CUDA Toolkit

  • 而PyTorch版本的选择我们可以参考官网的链接来进行选择:https://pytorch.org/get-started/previous-versions/,,官网中给出了比较详细的版本对应关系
    image-20240622174104776

  • 但是由于网络环境不好,可能会安装失败,所以毛毛张还是在下面简单介绍一下相关软件和包的版本选择

4.5.1 显卡驱动版本与CUDA Toolkit版本

4.5.2 CUDA版本与cuDNN版本

4.5.3 PyTorch版本与Python版本选择

  • 安装Pytorch,主要安装的是torch、torchvision、torchaudio、cuda toolkit这几个包
  • 这几个包的版本和Python版本可以参考官网链接来进行选择:https://pytorch.org/get-started/previous-versions/
  • 下图是毛毛张在网上找到的别人制作的一个版本之间的对应关系,可以看到,python版本的选择一般是大于3.6,CUDA的版本大于10.1
image-20240622173037024

5 超全的Pytorch(GPU版)安装教程【万事俱备,只欠东风】

  • 前面毛毛张做了很长的铺垫,就是为了这一步能够尽量在配置深度学习环境的时候减少出错,下面就让我们来学习一下配置深度学习的多种方式
  • 注意1: 在安装之前大家需要先根据第四章的介绍弄清楚自己电脑的驱动版本,同时查看自己的电脑支持的最高的CUDA版本,如果安装了驱动的话,可以在终端通过nvidia-smi命令查看
  • 注意2:配置的深度学习环境所以的版本都是最新的才不会出错,恰恰相反可以因为版本太高反而会出错,一定要选择合适的Python版本和Pytorch版本适配,如果最后面安装好之后检验的时候可以回头看毛毛张这句话去检查自己安装的版本是不是不匹配
  • 注意3:下面介绍的方法1和方法2主要针对的是要安装GPU版本的Pyotch的小伙伴,如果要安装CPU版本的小伙伴可以参考类似的步骤

5.1 方法1 (推荐)

5.1.1 前言

  • 这种方式是针对网络情况不好的情况下一定可以安装上的方法

5.1.2 删除刚刚创建的环境

未虑胜,先思败,当你看到这篇博客来寻求解决方案的时候,说明你已经遇到问题了,安装的时候已经中断了,所以为了确保不出现其它问题,所以删除掉刚刚创建的虚拟环境,重新创建新的虚拟环境在安装

1️⃣删除虚拟环境

如果你还没有开始配置虚拟环境,但是需要采用该方法配置虚拟环境,就可以跳过该步骤到第二步。
操作步骤:

  • 首先退回到base环境:conda deactivate
  • 然后删除刚刚创建的虚拟环境:conda remove --name env_name(虚拟环境名) --all
  • 接着删除conda安装的软件包、不再需要的索引文件和不再需要的缓存:conda clean --all
    • 由于你安装过程中失败了会有一些包下载下来了,但是没有安装,为了清理内存,建议执行一下这个命令
    • 该命令不会影响已经安装好的环境,并且不会把已经安装好的相关依赖给删掉,只是清理缓存。

2️⃣创建新的虚拟环境

注意细节:在配置深度学习环境的时候安装的Python版本不要太新,也不要太旧,毛毛张建议:比最新的版本低两个版本就行。
操作步骤:

  • 创建虚拟环境并指定Python版本:conda create -n env_name(虚拟环境名) python=3.10
    • 当然你也可以先创建虚拟环境,然后激活虚拟环境,接着在使用conda命令安装python
      • 创建虚拟环境:conda create -n env_name
      • 激活虚拟环境:conda activate env_name
      • 安装Python:conda install python=3.10
    • 安装失败警告⚠:如果你安装配置虚拟环境并安装Python的时候,发现安装Python都很慢的时候,那大概率说明你的网络不是很好,你需要给conda配置镜像源

    • 解决步骤:

    • 1.删除之前的镜像源,恢复到默认镜像源:conda config --remove-key channels

      • 为了防止你之前在别的地方已经看到其它的地方的镜像源配置教程,已经配置过了,所以我们这里首先回到默认的镜像源,没配置执行该命令也没有什么问题
    • 2.添加conda镜像源

      • 语法:conda config --add channels 镜像源
      # 清华镜像源
      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/cloud/conda-forge/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
      # 中科大镜像源
      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 --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/
      # 阿里镜像源
      conda config --add channels https://mirrors.aliyun.com/pypi/simple/
      # 上交镜像源
      conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/
      conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/
      conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge/
      # 豆瓣的python的源
      conda config --add channels http://pypi.douban.com/simple/ 
      

      说明:上面的镜像源不用都添加,随便选择一个就可以,建议选择清华镜像源和中科大镜像源

    • 3.设置显示检索路径,每次安装包时会将包的来源源路径显示出来

      conda config --set show_channel_urls yes
      conda config --set always_yes True
      
    • 4.显示添加的镜像源,可以显示添加成功没有

      conda config --show channels
      

5.1.3 下载PyTorch

  • 很多教程是直接让你去官网安装,下载速度慢,效果很不好;而且一旦中途中断,直接前功尽弃。所以对于网络不好的小伙伴而言,直接先把PyTorch下载下来,然后再单独使用pip命令手动安装
  • 下载网站:https://download.pytorch.org/whl/torch_stable.html
    • 网站说明:这个网站里面里面涵盖了所有Pytorch的GPU和CPU版本,进去根据自己需要的版本手动下载对应的文件
      image-20240329145357651
    • 文件名说明:
      • cu113:指的是CUDA的版本的是11.3,要低于你的电脑能够支持的CUDA的版本
      • torch-1.12.1:指的Pytorch的版本,根据你的需要选取
      • cp37/cp38/cp39:指的是Python的版本
      • linux_x86_x64/win_amd64:指的是系统
  • 在下载之前需要确定好自己安装的版本需求,可以去官网确定自己所需要的深度学习的版本,在前面毛毛张介绍了如何确定相关包的版本,可以根据目录跳转到相关部分进行查阅
  • 注意事项:配置深度学习换主要是安装torchtorchvisiontorchaudio这三个库,torchaudio这个库是音视频相关的库,如果不是做音视频相关的深度学习,可以不用下载,在后面的演示中,毛毛张只下载torchtorchvision这个两个库做演示。
    • 注意细节:官网在安装指定版本的时候,如果使用conda命令安装的时候书写的是pytorch,而使用pip命令安装的时候书写的是torch,注意一下就行,下面有一个详细的解释。
    image-20240329150935565
    • ChatGPT解释:“torch” 和 “PyTorch” 实际上是指同一个框架。“torch” 最初是一个用于科学计算的 Python 包,提供了张量操作、自动求导等功能。这个包是由 Facebook 的人工智能研究团队开发的,旨在为深度学习提供强大的工具。后来,这个包被进一步发展成为一个更全面的深度学习框架,即 PyTorch。为了避免与另一个叫做 “torch” 的 Python 包(一个用于科学计算的多维数组库)混淆,人们开始将 PyTorch 作为这个深度学习框架的名称,以示区别。因此,“torch” 通常指的是这个包的早期版本,而 “PyTorch” 则指的是现代深度学习框架。

5.1.4 安装PyTorch

操作步骤:

  • 1.激活虚拟环境:
    conda activate env_name
    
  • 2.使用pip命令进行安装:pip install 上一步下载的whl文件路径
    • 首先安装torch:
      pip install D:\Download\torch-1.13.1+cu116-cp39-cp39-linux_x86_64.whl
      
    • 然后安装torchvision:
      pip install D:\Download\torchvision-0.14.1+cu116-cp39-cp39-win_amd64.whl
      
  • 报错警告⚠:如果是第一次安装,没有配置pip镜像源也可能报错
    Could not fetch URL https://pypi.org/simple/typing-extensions/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=‘pypi.org’, port=443): Max retries exceeded with url: /simple/typing-extensions/ (Caused by SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:1125)))) - skipping
    
    • 解决方案:首先进入C:\Users\(你的用户名)\AppData\Roaming文件夹内,然后新建一个pip文件夹,接着进入新建的pip文件夹,然后创建一个pip.ini的文件,将下面这段内容复制进这个文件保存关闭,再执行上面的安装操作
      [global]
      index-url=http://mirrors.aliyun.com/pypi/simple/
      [install]
      trusted-host=mirrors.aliyun.com
      
    • 实质上是就是换源,这是利用的阿里源,关于配置pip命令的镜像源的更多步骤可以参见毛毛张的这篇博客:给pip命令配置镜像源

5.1.5 检测是否安装成功

  • 进入python
  • 输入测试代码:
    import torch
    print('torch版本:'+torch.__version__)
    print('cuda是否可用:'+str(torch.cuda.is_available()))
    print('cuda版本:'+str(torch.version.cuda))
    print('cuda数量:'+str(torch.cuda.device_count()))
    print('GPU名称:'+str(torch.cuda.get_device_name()))
    

5.2 方式2 - pip命令+清华镜像源(推荐)

5.2.1 前言

  • 这种方式对于网络还可以的小伙伴是比较合适的,一般不会出什么问题
  • 这种方式既适用于Windows系统也适用于Linux系统,但是最适用于Linux系统,因为pip install torch命令在Windows中只会默认安装CPU版本,而在Linux系统中会默认安装GPU版本
  • 更具体的细节可以看下面毛毛张的介绍

5.2.2 创建虚拟环境

  • 在创建虚拟环境这一步,是必须使用conda命令了,并且还要指定Python的版本,安装了Python才能使用pip命令
  • 创建虚拟环境并指定Python版本:conda create -n env_name(虚拟环境名) python=3.10
    • 当然你也可以先创建虚拟环境,然后激活虚拟环境,接着在使用conda命令安装python
      • 创建虚拟环境:conda create -n env_name
      • 激活虚拟环境:conda activate env_name
      • 安装Python:conda install python=3.10
  • 如果conda创建虚拟环境失败,大概率是conda源的问题,你需要配置conda镜像源,具体的配置步骤可以参考方法1,或者第3章中的内容

5.2.3 pip命令安装PyTorch

  • 我们可以在官网找到对应PyTorch版本的pip安装命令:https://pytorch.org/get-started/previous-versions/
    image-20240622180255399

  • 但是官网的命令复制过来,由于无法直接访问国外网络,所以将官网的命令复制过来,如果安装不成功,对于Windows系统可以跳转到上面的方法1进行安装,而对于Linux系统可以直接使用下面的步骤。

    pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
    
  • 对于Linux系统,我们可以通过pip命令的-i参数指定的镜像源成国内镜像源(上面的--index-url等价于-i),然后就会默认安装GPU版本的Pytorch;对于Windows系统,则会只安装CPU版本的

    pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 -i  https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 注意:在torch更新进入2.0之后,pip install torch命令在指定torch版本的时候,就没有加上cuda的版本号,但是之前的版本有,因此如果在Linux系统中安装2.0之前的版本的时候需要去掉后面的版本号,对于Linux系统而言,添加上镜像源之后会默认安装GPU版本

    pip install torch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 -i  https://pypi.tuna.tsinghua.edu.cn/simple
    
    • 更新之前:
      在这里插入图片描述
    • 更新之后:
      在这里插入图片描述
  • 下图是毛毛张配置镜像源之后的安装速度
    image-20240622180827919

  • 注意:给pip命令配置的镜像源和conda命令配置的镜像源是不一样,不能conda命令的镜像源给pip命令使用

  • 上面通过-i参数指定镜像源是一种暂时的做法,如何永久的修改,每次都是指定该镜像源,可以参考文章的第3章部分,毛毛张针对Windows系统和Linux系统做出了详细的说明

5.2.4 书写requirements.txt

1️⃣说明
  • 由于深度学习环境安装的包不只是Pytorch相关的包,还要很多其它相关版本的包的要求,🌰例如numpy、matplotlib、openai等等,于是我们可以将这些需要安装的包和对应的版本按照一定的格式写在一个名为requirements.txt文件中即可,然后使用pip命令来进行安装
  • 为什么是这个文件名,其它的文件名也可以,只要是txt文件,按照既定的格式,但是圈内都是使用这个文件名
2️⃣书写语法

🏠类型1:指定版本

包名/库名==版本号

🏠类型2:不指定版本

包名/库名

🏠类型3:只要不低于某一个版本

pandas>=1.0.0

🌰示例:requirements.txt文件

torch==2.3.0 
torchvision==0.18.0 
torchaudio==2.3.0
requests
numpy==1.18.0   
pandas>=1.0.0
3️⃣安装

命令:

pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

说明:

  • -r:用于指定文件
  • -i:用于指定镜像源
4️⃣生成requirement.txt
  • 如果是自己的话一般很少去自己写requirement.txt文件,一般都是复现别人的代码的时候,根据别人提供的requirement.txt文件来配置深度学习环境
  • 如何生成自己项目的requirement.txt文件呢?
    • 首先激活项目所在的虚拟环境
    • 然后使用如下命令生成requirement.txt文件
      # 默认生成在当前终端开打的路径下
      pip freeze > requirements.txt  
      # 指定生成路径
      pip freeze > D:\Download\requirements.txt  
      

5.3 方法3 - 官网命令conda/pip

该方式是对于网络畅通无阻的小伙伴的可以建议选这一个,比如能正常科学上网,这也是大多数网上教程的方式

1.进入PyTorch安装命令官网:https://pytorch.org/get-started/locally/
image-20240329153603119
2.根据官网的选项来选择你需要的版本(如上图):

  • PyTorch Build:建议选择Stable
  • Yours OS:根据你自己的操作系统来选择
  • Package:就是你选择使用conda命令还是pip命令安装,两者均可
  • Language:现在深度学习大多都是用python语言
  • Compute Platform:选择小于你电脑的CUDA可支持的版本,不是越新越好
  • 然后就可以生成相关的命令了:
    conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
    

注意事项:当有小伙伴发现自己需要安装的版本的再这个里面没有怎么办,不要慌,选择上面的Previous Pytorch Versions,进去之后就可以根据自己的系统选择合适的版本,然后复制安装命令,如下图

image-20240329154640080 image-20240329155155734

3.然后进入到自己的虚拟环境当中,将刚刚的安装命令粘贴到命令行中,即可等待安装了

  • 希望这种安装方式可以安装成功
  • 这种方式虽然不能安装成功,但是可以帮你确定你所要安装的版本
    4.创建虚拟环境
conda create -n env_name python=3.10

如果使用conda这一步就失败了,那就说明大概率你需要配置镜像源,可以参考前面的步骤

5.安装PyTorch

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

如果前面已经配置了镜像源,执行这个命令安装失败,大概率你的网络使用这个方法行不通!

5.4 方法4-拷贝虚拟环境

5.4.1 前言

  • 🏠情境1: 当我们已经创建了一个比较好的虚拟环境,别的项目也可以用的时候,但是我们有不想新的项目把当前配置的环境给污染,我们该怎么做呢?
  • 🏠情境2: 当我们的项目因为显卡不够,需要进行项目迁移的时候,之前配置好的环境是否也需要迁移呢?
  • 🚩解决方法:环境迁移,我们可以把之前配置好的环境迁移到新的环境下,具体怎么迁移呢,只需要把之前的在anaconda/envs下的虚拟环境进行压缩,然后拷贝到新的环境下的anaconda/envs目录下,然后解压,即可生效
  • 注意事项:
    • 每个人安装的目录命令可能不同,但是,在Anaconda安装包的目录下肯定有一个目录是envs/,该目录是用来存放的已经配置好的虚拟环境,只需要拷贝到该目录下即可,即使是Linux也是一样,也存在相同的目录
    • Windows系统下配置的环境只能迁移到Windows系统下,Linux系统下的虚拟环境只能迁移到Linux系统下,不能将Linux与Windows下的虚拟环境相互迁移,这样是不可行的
    • 由于配置一个虚拟环境的目录会比较大,因此在拷贝的过程中,先将整个虚拟环境进行压缩之后,再拷贝到别的电脑,如果不压缩,使用scp命令进行拷贝,由于文件过大,会出现文件丢失

5.4.2 本机拷贝

方式1-直接复制

如果只是在本机拷贝,可以直接进入该目录进行复制和粘贴,然后重新进行改名即可,或者熟悉命令行的小伙伴,可以使用终端命令进行拷贝,这样更快

# Windows系统和Linux下均可
# 首先进入anaconda的虚拟环境目录下
cd /home/anaconda3/envs/
# 新建一个虚拟环境文件夹
mkdir new_env_name
cp -r /home/anaconda3/envs/old_env_name/*   /home/anaconda3/envs/new_env_name
# 如果当前工作目录已经在/home/anaconda3/envs/下
cp -r old_env_name/*  new_env_name
  • 操作步骤:
    image-20240623160253050
  • 复制后
    image-20240623161043333
  • 改名:
    image-20240623161327830
  • 打开Anaconda Prompt,如用如下命令检测是否复制成功
    conda env list
    
image-20240623161811610
  • 激活虚拟环境下的python,还可以用如下代码进行测试,查看环境是否存在问题
    # 激活虚拟环境下的Python
    $ conda activate new_env
    $ python
    # python代码
    import torch
    print('torch版本:'+torch.__version__)
    print('cuda是否可用:'+str(torch.cuda.is_available()))
    print('cuda版本:'+str(torch.version.cuda))
    print('cuda数量:'+str(torch.cuda.device_count()))
    print('GPU名称:'+str(torch.cuda.get_device_name()))
    
方式2-conda命令
  • 如果安装Anaconda的时候添加了环境变量,则可以直接打开cmd,如果没有的话Windows系统可以打开Anaconda的终端Anaconda Prompt

  • 输入如下命令即可拷贝一个新的虚拟环境

    #new_env表示新的虚拟环境的名字,old_env表示老虚拟环境的名字
    conda create -n new_env --clone old_env       
    

5.4.3 跨机拷贝

  • 将一个电脑上面的虚拟环境拷贝到另外一个电脑上,没有太大的区别,只是需要将安装包先进行压缩,拷贝到另外一个电脑上,然后在进行解压
  • 跨机器拷贝需要涉及到一个服务器之间文件的传输的相关知识,需要用到scp命令,毛毛张将在下篇博客中讲解如何实现服务器之间文件的传输
  • 大家也可以自行学习一下如何使用scp命令实现将一台服务器上的虚拟环境压缩文件传输到另一台服务器上

5.5 总结

  • 大家可以根据自己的实际情况选择合适的方式,方式1虽然一定可以安装成功,但是每次需要去特定的网站下载相关的安装包,大家可以先尝试方法2,如果方法2配置了镜像源之后还是不行,再去考虑第1种方法
  • 毛毛张上面详细介绍了目前四种比较常见的创建虚拟环境的方式,目的是为了帮助大家在配置深度学习环境的时候尽量少出现错误
  • 上面的四种方式,毛毛张在学习深度学习的过程中均用过,基本上把可能涉及到的问题和知识点都进行了详细的阐述

6 实用设置【锦上添花】

  • 前面毛毛张介绍了一下如何配置深度学习环境,下面毛毛张介绍一下在深度学习过程中比较实用的配置

6.1【PyCharm设置】设置PyCharm打开Terminal终端,自动进入虚拟环境的办法

6.1.1 前言

  • 有时候Pycharm的terminal中显示的是硬盘中的项目路径,但没有进入我们创建好的虚拟环境
    image-20240329170951093

6.1.2 操作步骤🔧

1.首先打开PyCharm

2.然后点击上方工具栏中的File>Tools>Terminal,如下图所示,将其中的Shell path中的powershell.exe切换为cmd.exe

image-20240329171023464
image-20240329171250448

3.然后重启Pycharm,再进入Terminal,即可发现里面已经进入了虚拟环境

image-20240329171352957

说明: 以上步骤成功的前提是你的项目已经配置好了虚拟环境。如果上述步骤不好使的话,可以尝试在PycharmTerminal中手动进入AnacondaScripts文件夹(如我的Anaconda安装在D:\Anaconda中,而activate.bat文件在D:\Anaconda\Scripts中),然后通过activate命令进入虚拟环境

image-20240329171650632

6.2【Jupyter设置】如何更改Jupyter Notebook的默认工作路径?

6.2.1 前言

  • 每次我们打开Jupyter Notebook时,在弹出的浏览器界面上是系统的默认工作路径,那一堆文件毛毛张一开始都不知道是哪里冒出来的,后面才知道默认工作路径是在C盘下C:\Users\lenovopc文件夹下的文件(如下图),因此当我们想要保存写好的Python文件到自己想要的路径下时就非常的不方便,接下来毛毛张将分享如何修改Jupyter Notebook默认的工作路径
    图片
    图片

6.2.2 操作步骤🔧

  1. 首先打开Anaconda自带的命令提示窗口**【Anaconda Prompt】**;
图片
  1. 在【Anaconda Prompt】中输入如下命令,生成Jupyter配置文件:Jupyter_notebook_config.py

    (base) C:\Users\lenovopc>jupyter notebook --generate-config
    
  2. 根据产生的提示语找到该配置文件(在C盘用户目录文件夹下),由于毛毛张之前已经修改过,再次输入命令就会被重新覆盖;

图片
  1. 用记事本打开或者PyCharm打开都行,并用搜索(Ctrl+F)找到如下字段(用Pycharm打开就可以显示行数,大概在450行左右的样子,如下图):

    #c.NotebookApp.notebook_dir = ''
    
图片
  1. 在后面的单引号‘’中输入想修改为的默认工作路径,如下图,并删除前面的字符:#,也就是取消掉注释,然后保存文件;
图片
  1. 再重新打开Jupyter即可进入指定的工作路径文件夹下,毛毛张建议各位新建一个专门存放利用jupyter notebook编写Python代码的文件夹,干净又卫生!
图片
图片

7 总结

  • 创作不易!希望大家能够一键三连!
  • 同时大家如果有什么配置深度学习的问题可以在评论区打出来,毛毛张看到了之后会回复大家,如果能够解决的一定帮助大家解决

8 参考文献

  • 29
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神马都会亿点点的毛毛张

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值