Pytorch 安装与配置

每次在服务器上配置环境都需要考虑 Pytorch 版本 / CUDA 版本 / GPU 驱动版本等诸多因素,因为 ⌈ \lceil Pytorch 只能下载指定 CUDA 版本的库 ⌋ \rfloor ⌈ \lceil GPU 只能使用特定版本的驱动 ⌋ \rfloor ⌈ \lceil GPU 有最高支持的 CUDA 版本限制 ⌋ \rfloor 等等,本文在此梳理相关要素。

目录

  • 一. 硬 / 软件环境
    • 1. GPU
    • 2. GPU 驱动
    • 3. CUDA
    • 4. Python
    • 5. Pytorch
    • 6. Anaconda
  • 二. Pytorch 安装

一. 硬 / 软件环境

项目开发之前,需要检查计算机的硬 / 软件环境,包括 GPU、驱动、CUDA、Python、Pytorch、Anaconda 等。

1. GPU

GPU(Graphics Processing Unit,图形处理单元)是一种专门设计用于处理图形和图像数据的处理器,它是计算机中用于实时渲染图形、处理图像、执行计算密集型任务的关键组件之一。GPU 最初是为了图形渲染而设计的,但是随着技术的发展,它们的功能被拓展到了其他领域,如科学计算、人工智能和深度学习等。GPU 的并行处理能力使得它们在执行大规模并行计算任务时表现出色。

  • 在图形处理方面,GPU负责处理三维图形数据,并将其转换为二维图像,然后输出到显示器上。它们通常配备了大量的专用图形处理核心,这些核心可以同时处理多个图形元素,如顶点、像素和纹理等,以实现快速的图形渲染和图像处理。
  • 在科学计算和深度学习方面,GPU 的并行计算能力使其成为处理大规模数据集和复杂算法的理想选择。许多科学计算和机器学习任务可以通过 GPU 并行计算来加速处理速度,因为 GPU 可以同时执行大量相似的计算任务。

在所有工作开始之前,先检查计算机的 GPU 情况:

  • 如果是本地,右击 “此电脑” -> 属性 -> 高级系统设置 -> 硬件 -> 设备管理器,如果 “显示适配器” 下有 NVIDIA 字样,就说明有 NVIDIA 显卡(左图),否则就是没有(右图):
    在这里插入图片描述
    也可以在任务管理器 -> 性能 -> GPU 中查看。Windows 系统还可以使用 wmic path win32_videocontroller get caption 命令查看显卡信息;
  • 如果是服务器(一般默认 Linux 系统),可以直接使用 nvidia-smi 命令查看显卡的标号和型号:
    在这里插入图片描述

2. GPU 驱动

GPU 驱动(Graphics Processing Unit Driver,图形处理单元驱动程序)是负责在操作系统和图形处理单元之间进行通信和协调的软件,主要功能包括:硬件控制、性能优化、兼容性支持、错误修复、功能扩展等。GPU 驱动程序通常由显卡制造商提供,例如 NVIDIA、AMD、Intel 等,用户可以从它们的官方网站或通过操作系统的自动更新功能获取最新的驱动程序。

GPU 驱动版本可以直接使用 nvidia-smi 命令查看:
在这里插入图片描述

想要知道合适的 GPU 驱动版本,可以访问 http://www.nvidia.com/Download/index.aspx 查询:
在这里插入图片描述

3. CUDA

CUDA(Compute Unified Device Architecture,计算统一设备架构)是由 NVIDIA 开发的并行计算平台和编程模型,旨在利用 NVIDIA GPU 的并行计算能力进行通用目的的计算。CUDA 使开发人员能够利用 GPU 的大量并行处理核心来加速计算任务,从而在科学计算、深度学习、机器学习、图形处理等领域获得更高的性能和效率。

CUDA 包括以下主要组件:

  1. CUDA 编程模型:CUDA 提供了一种简单而强大的编程模型,允许开发人员使用类似于 C 语言的 CUDA C 或 CUDA C++ 来编写并行计算任务。CUDA 编程模型使开发人员能够将计算任务分解为多个线程块和线程,并在 GPU 上并行执行这些线程;
  2. CUDA 运行时:CUDA 运行时是一组库和 API,用于在主机 CPU 和 GPU 之间管理数据传输、内存分配、线程调度等操作。开发人员可以使用 CUDA 运行时来启动 CUDA 核函数(在 GPU 上运行的函数)、分配和释放 GPU 内存、配置 GPU 执行参数等;
  3. CUDA 工具包:CUDA 工具包包括用于开发、调试和优化 CUDA 应用程序的一系列工具和实用程序。其中包括编译器、调试器、性能分析器、代码优化工具等,这些工具有助于开发人员更高效地利用 GPU 的并行计算能力;
  4. CUDA 核函数:CUDA 核函数是在 GPU 上并行执行的函数,可以由 CUDA 编程模型中的线程块中的多个线程同时执行。开发人员可以使用 CUDA C 或 CUDA C++ 编写 CUDA 核函数,并通过调用该函数在 GPU 上执行并行计算任务。CUDA C/C++ 语法见 CUDA C/C++ 教程一:加速应用程序。

CUDA 版本可以直接使用 nvcc --version 命令查看:
在这里插入图片描述

CUDA 版本会受到 GPU 限制,使用 nvidia-smi 命令可以查看 GPU 最高支持的 CUDA 版本号:
在这里插入图片描述

需要注意的是,CUDA 不是独立安装的,而是在安装 Pytorch 时一起安装的

4. Python

现在一般使用的都是 Python 3.x,可以使用命令 python3 --versionpython --version 检查版本:
在这里插入图片描述

5. Pytorch

Pytorch 分为 CPU 版本和 GPU 版本(+cuxxx),只有带英伟达显卡的电脑才能安装 GPU 版本。可以使用 python -c "import torch; print(torch.__version__)"python3 -c "import torch; print(torch.__version__)" 指令检查 Pytorch 版本:
在这里插入图片描述

6. Anaconda

Anaconda 是一个开源的 Python 和 R 语言的发行版,用于科学计算、数据分析、机器学习和大数据处理等领域。它包含了许多常用的数据科学工具和库,并提供了一个方便的包管理系统,使得用户可以轻松地安装、管理和更新各种数据科学工具和库。

Anaconda 包括以下主要组件:

  1. Python 和 R:Anaconda 自带 Python 和 R 语言的解释器,并预先安装了许多常用的数据科学包和库。这使得用户可以立即开始在 Python 或 R 中进行数据分析、科学计算和机器学习等任务。
  2. conda:conda 是 Anaconda 的包管理器和环境管理器。它可以用于安装、升级、删除软件包,并管理不同版本的软件包之间的依赖关系。conda 还允许用户创建、管理和切换不同的环境,以便在同一台机器上同时运行多个不同版本的软件。
  3. Jupyter Notebook:Jupyter Notebook 是一个交互式的笔记本环境,可以在网页浏览器中创建和共享文档,包括实时代码、可视化图形、文本和其他富媒体内容。
  4. Spyder:Spyder 是一个基于 Python 的集成开发环境,提供了丰富的编辑器、调试器和其他开发工具,适用于开发和调试 Python 代码。

正因为 Anaconda 集成了 Python、Jupyter Notebook、NumPy、Pandas、Matplotlib 等诸多数据科学工具和库,并且提供了简单易用的环境管理工具,可以轻松地创建、管理和切换不同的 Python 虚拟环境,Anaconda 在项目开发中被广泛使用。安装好 Anaconda 的计算机会自带一个基础环境,后续项目开发时每个项目需要的安装包不同,为了避免冲突,可以为每个项目配置一个虚拟环境,以 避免不同项目之间环境依赖的冲突

服务器上一般都装有 Anaconda,可以使用 conda --version 命令检查版本:
在这里插入图片描述

本地 Windows 上安装 Anaconda 教程参考 2023最新pytorch安装(超详细版)。

虽然 conda 和 pip 都可以安装软件包,但有一些差别:

  1. 安装位置:
    • 通过 pip 安装的 Python 软件包通常会被安装到 Python 解释器的 site-packages 目录下:Linux 中一般在 /usr/local/lib/python3.x/site-packages/ 下,Windows 中一般在 C:\Python3.x\Lib\site-packages\ 下;
    • 通过 conda 安装的 Python 软件包通常会被安装到 conda 环境下特定目录:默认环境一般在 /anaconda3/lib/python3.x/site-packages/,conda 环境一般在 /path/to/your/env/lib/python3.x/site-packages/
  2. 软件包来源:
    • pip 是 Python 的默认包管理工具,主要用于从 Python Package Index (PyPI) 安装和管理 Python 软件包;
    • conda 是 Anaconda 发行版自带的包管理工具,它能够管理包括 Python 软件包在内的任何软件包,并提供了自己的软件仓库;

总的来说,pip 适用于管理 Python 包,而 conda 则更适用于管理整个软件环境。因此大多数情况下,项目开发会 使用 conda 创建虚拟环境,然后 使用 pip 安装软件包

二. Pytorch 安装

  1. 安装 Pytorch 前,需要使用 pip uninstall torch torchvision 命令卸载之前的版本:
    在这里插入图片描述

  2. Pytorch 的安装需要考虑 GPU 支持的 CUDA 版本,比如上文 GPU 信息提示最高支持 12.2 版本 的 CUDA,就可以安装小于等于 12.2 版本的 CUDA 对应的 Pytorch。去 Pytorch 官网 INSTALL PYTORCH 下查询满足条件的 Pytorch 版本,如果想要安装旧版本的 Pytorch,点击 Previous versions of PyTorch
    在这里插入图片描述

  3. 搜索想要安装的 Pytorch 版本即可,以 1.13.1 为例:
    在这里插入图片描述
    Conda 下的是使用 conda 安装,Wheel 下的是使用 pip 安装;

  4. 选择符合操作系统和 CUDA 版本的下载指令下载即可:
    在这里插入图片描述

如果网络问题下载缓慢,可以使用国内镜像:

镜像名镜像地址 – pytorch, torchvision, torchaudio
清华镜像https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
北京外国语大学镜像https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/win-64/
阿里巴巴镜像http://mirrors.aliyun.com/anaconda/cloud/pytorch/win-64/
南京大学镜像https://mirror.nju.edu.cn/pub/anaconda/cloud/pytorch/win-64/

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux:信号的保存

文章目录 信号相关概念信号递达信号未决信号阻塞内核中的示意图 信号集的操作函数 前面对于信号的产生中对操作系统有了一个基础的认知,对于一个真正的操作系统来说,进程是由操作系统进行调度的,那操作系统本身也是代码,是由谁进行…

CSS盒子的概念

盒子模型 盒子的概念 页面中的每一个标签都可以看做是一个“盒子”,通过盒子的视角更方便的进行布局 浏览器在渲染(显示)网页时,会将网页中的元素看做是一个个的矩形区域,称之为“盒子” 盒子模型 CSS中规定每个盒…

Java 集合、迭代器

Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queu…

Java图形化界面编程——组件绘图原理 笔记

2.8 绘图 ​ 很多程序如各种小游戏都需要在窗口中绘制各种图形,除此之外,即使在开发JavaEE项目时, 有 时候也必须"动态"地向客户 端生成各种图形、图表,比如 图形验证码、统计图等,这都需要利用AWT的绘图功…

第74讲Breadcrumb 面包屑实现

Breadcrumb 面包屑实现 为了实现二级路由,我们搞成搞个子路由,对于二级菜单 const routes [{path: /,name: 首页,component: () > import(../views/layout),redirect:/home,children:[{path: /home,name: 首页,component: () > import(../views…

JAVA设计模式之访问模式详解

访问者模式 1 访问者模式介绍 访问者模式在实际开发中使用的非常少,因为它比较难以实现并且应用该模式肯能会导致代码的可读性变差,可维护性变差,在没有特别必要的情况下,不建议使用访问者模式. 访问者模式(Visitor Pattern) 的原始定义是:允许在运行时将一个或多…

《CSS 简易速速上手小册》第10章:未来的 CSS(2024 最新版)

文章目录 10.1 CSS 的新特性和趋势10.1.1 基础知识10.1.2 重点案例:使用 CSS Grid 创建响应式图库10.1.3 拓展案例 1:利用 CSS 变量实现主题切换10.1.4 拓展案例 2:使用 lab() 颜色和 layer 规则优化样式 10.2 CSS Houdini:魔法般…

【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目

作者推荐 视频算法专题 本博文涉及知识点 深度优先搜索 树 图论 分类讨论 LeetCode2973. 树中每个节点放置的金币数目 给你一棵 n 个节点的 无向 树,节点编号为 0 到 n - 1 ,树的根节点在节点 0 处。同时给你一个长度为 n - 1 的二维整数数组 edges…

【leetcode热题100】反转链表 II

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a;[1,4,3,2…

Java 学习和实践笔记(6)

各数据类型所占的空间&#xff1a; byte: 1个字节 short&#xff1a;2个字节 int&#xff1a;4个 long&#xff1a;8个 float&#xff1a;4个 double: 8个 char:1个 boolean:1bit 所有引用数据类型都是4个字节&#xff0c;实际其值是指向该数据类型的地址。 上图中稍特…

《统计学简易速速上手小册》第9章:统计学在现代科技中的应用(2024 最新版)

文章目录 9.1 统计学与大数据9.1.1 基础知识9.1.2 主要案例&#xff1a;社交媒体情感分析9.1.3 拓展案例 1&#xff1a;电商销售预测9.1.4 拓展案例 2&#xff1a;实时交通流量分析 9.2 统计学在机器学习和人工智能中的应用9.2.1 基础知识9.2.2 主要案例&#xff1a;预测客户流…

浅谈人工智能之深度学习~

目录 前言&#xff1a;深度学习的进展 一&#xff1a;深度学习的基本原理和算法 二&#xff1a;深度学习的应用实例 三&#xff1a;深度学习的挑战和未来发展方向 四&#xff1a;深度学习与机器学习的关系 五&#xff1a;深度学习与人类的智能交互 悟已往之不谏&#xff0…