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.mzph.cn/news/673476.shtml

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

相关文章

国际物流数字化运输方式选择指南 | 箱讯科技

国际物流涉及多种运输方式,每种方式都有其独特的优势和适用场景。选择合适的运输方式对于确保货物安全、及时到达目的地并控制成本至关重要。以下是对六种主要国际运输方式的简要介绍和选择建议: 国际快递:适用于小件、高价值或急需的货物。…

基于Skywalking开发分布式监控(二)

续上篇,上一篇主要是讲了为啥选skywalking,以及怎么有针对性改造SW Agent,现在我们继续看看如何构建自定义Trace跟踪链 要对SW Agent插件做适当剪裁,原来包括customize插件在内SW 8.9有100多个插件,如果没有作用也就罢…

jvm几个常见面试题整理

1. Full GC触发机制有如下5种情况。 (1)调用System.gc()时,系统建议执行Full GC,但是不必然执行。(2)老年代空间不足。(3)方法区空间不足。(4)老年代的最大可用连续空间小于历次晋升到老年代对象的平均大小就会进行Full GC。(5)由Eden区、S0(From)区向S…

基于蒙特卡洛的电力系统可靠性分析matlab仿真,对比EDNS和LOLP

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 1.课题概述 电力系统可靠性是指电力系统按可接受的质量标准和所需数量不间断地向电力用户供应电力和电能量的能力的量度,包括充裕度和安全性两个方面。发电系统可靠性是指统一并网的全部发电机…

OOD分类项目训练

一、项目地址 GitHub - LooKing9218/UIOS 二、label制作 将训练、验证、测试数据的分类信息转换入.csv文件中,运行如下脚本即可: import os import csv#要读取的训练、验证、测试文件的目录,该文件下保存着以各个类别命名的文件夹和对应的分…

【网站项目】035家居商城系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

加推科技,华为云上生长的营销革新

编辑:阿冒 设计:沐由 “我是个很幸运的人。”几天前的一次采访中,彭超——加推科技创始人、CEO,如此扼要简洁地总结自己的职业历程,完全不是我想象中那种前顶级Sales的口若悬河。 加推科技创始人、CEO 彭超 没错&…

ZigBee学习——在官方例程上实现串口通信

Z-Stack版本为3.0.2 IAR版本为10.10.1 文章目录 一、添加头文件二、定义接收缓冲区三、编写Uart初始化函数四、编写串口回调函数五、函数声明六、函数调用七、可能遇到的问题(function “halUartInit“ has no prototype) 以下所有操作都是在APP层进行,也就是这个文…

ThinkPHP 中使用Redis

环境.env [app] app_debug "1" app_trace ""[database] database "" hostname "127.0.0.1" hostport "" password "" prefix "ls_" username ""[redis] hostname "127.0.0.1…

Java并发基础:BlockingQueue和BlockingDeque接口的区别?

核心概念 BlockingQueue 和 BlockingDeque 它们都支持在并发编程中的线程安全操作,但是,这两个接口之间存在一些关键的区别,主要在于它们所支持的操作和数据结构的特性,如下: 1、数据结构特性: Blocking…

npm 上传一个自己的应用(4) 更新自己上传到NPM中的工具版本 并就行内容修改

前面 npm 上传一个自己的应用(2) 创建一个JavaScript函数 并发布到NPM 我们讲了将自己写的一个函数发送到npm上 那么 如果我们想到更好的方案 希望对这个方法进行修改呢? 比如 我们这里加一个方法 首先 我们还是要登录npm npm login然后 根据要求填写 Username 用…

HDFS 之 数据管理(namespace 和 slaves)

1、namespace Namespace在HDFS中是一个非常重要的概念,也是有效管理数据的方法。Namespace有很多优点:可伸缩性。使HDFS集群存储能力可以轻松进行水平拓展;系统性能。单点性能受限,影响系统吞吐;隔离性。不同业务类型访问集群有时容易互相干扰,使用多Namespace可以有效管…

BlueLotus 下载安装使用

说明 蓝莲花平台BlueLotus,是清华大学曾经的蓝莲花战队搭建的平台,该平台用于接收xss返回数据。 正常执行反射型xss和存储型xss: 反射型在执行poc时,会直接在页面弹出执行注入的poc代码;存储型则是在将poc代码注入用…

如何在 emacs 上开始使用 Tree-Sitter(windows)

文章目录 如何在emacs上开始使用Tree-Sitter(windows) 如何在emacs上开始使用Tree-Sitter(windows) 参考:“How to Get Started with Tree-Sitter”。 首先要有一个可运行的emacs,并且它支持Tree-Sitter&…

Docker配置Portainer容器管理界面

目录 一、Portainer 简介 优点: 缺点: 二、环境配置 1. 拉取镜像 2. 创建启动容器 三、操作测试 1. 进入容器 2. 拉取镜像并部署 3. 访问测试 一、Portainer 简介 Portainer 是一个开源的轻量级容器管理界面,用于管理 Docker 容器…

图数据库 之 Neo4j - 环境搭建(2)

运行环境: centos7 Docker version 18.09.6 下载镜像 docker search neo4j docker pull neo4j 创建 neo4j 用户 # 创建 neo4j 用户 # -M 不创建用户的主目录 sudo useradd -M neo4j # usermod 用于修改用户属性命令 # -L 锁定用户,用户无法登录系统 user…

【知识图谱--第二讲知识图谱的表示】

知识图谱的表示 知识表示Knowledge Representation 知识表示方法知识图谱的符号表示基于图的知识表示与建模简单图建模-最简单的无向图有向标记图OWL与Ontology 知识图谱的向量表示 知识表示 Knowledge Representation 知识表示(KR)就是用易于计算机处…

深度测评:ONLYOFFICE 桌面编辑器 v8.0新功能

目录 前言 一、PDF表单处理:提升办公效率 二、RTL(从右到左)支持:满足不同语言习惯 三、Moodle集成:教育行业的新助力 四、本地界面主题:个性化办公体验 五、性能优化与稳定性提升 六、性能与稳定性…

数据链路层DoS

图9-14 集线器应用原理 数据链路层中拒绝服务攻击的方式一般很少为人所熟知。数据链路层拒绝服 务攻击的主要目标为二层交换机。在早期网络中,通常都会使用集线器作为中间 处理设备。集线器属于纯硬件网络底层设备,没有任何“ 智能记忆” 能力和“学 …

Airtest实现在手机界面快速批量采集数据

Airtest实现在手机界面快速批量采集数据 一、问题 Airtest使用的poco方法比较慢,寻找差不多一周,看完这篇文章能节省一周时间,希望帮到大家。二、解决思路 使用Airtest图像识别,这样就会速度上提升效率。 三、解决办法 使用页面规律,要找到每条数据的附近规律(一般是图…