当前位置: 首页 > news >正文

【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-

一、准备工作

  1. pytorch需要python3.6及以上的python版本

  2. 我是利用Anaconda来管理我的python。可自行安装Anaconda。

  3. Anaconda官网 Free Download | Anaconda

  4. 具体Anaconda安装教程可参考

    https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshare=blogdetail&sharetype=blogdetail&sharerId=129599741&sharerefer=PC&sharesource=2201_75436278&sharefrom=from_link

二、pytorch介绍

安装 PyTorch 时,可以选择在 CPU 或 GPU 上运行,取决于你的硬件支持和需求。

  • CPU版本安装:

    CPU 版本适用于没有 GPU 或不需要使用 GPU 进行深度学习的情况。安装过程相对简单,因为没有依赖 GPU 驱动和 CUDA 的要求。

  • GPU版本安装:

    如果你的计算机上有 NVIDIA GPU,并且你希望加速深度学习计算,可以安装 GPU 版本的 PyTorch。GPU 版本依赖于 CUDA 和 cuDNN。

三、CPU版本pytorch安装

为了更好的管理不同项目的Python项目,通常建议创建一个虚拟环境。可以隔离不同项目的依赖项,避免项目之间的冲突。

1、创建虚拟环境

安装好Anaconda后会有这些程序

输入以下指令可查看当前的虚拟环境

conda env list

在这里插入图片描述
利用 conda create 指令创建新的虚拟环境

conda create –n 虚拟环境名字(自己设置) python=版本

演示如下
在这里插入图片描述在这里插入图片描述
输入y,等待安装

在这里插入图片描述

2、路径处理

如果安装后的虚拟环境没在 annconda3\enxs 的目录下,通常是以下几个原因导致的(以我的目录为例):

  • 没有写入权限:如果当前用户对 C:\ProgramData\anaconda3\envs 目录没有写入权限,Conda 会选择使用用户本地目(C:\Users\Xzwzh\.conda\envs)来存放环境。
  • 用户环境配置:Conda 的配置文件 .condarc 中可以设置 envs_dirs,用于指定环境的默认存放位置。如果设置了用户本地目录,那么新建的环境会存放在那里。
  • 环境隔离:在某些情况下,用户可能会故意选择将环境安装在用户目录下,以便不同用户使用各自的环境,避免对全局安装目录的修改。

如果希望将环境放在anaconda3\envs 目录下,可以在创建环境时显示指定 --prefix 参数。

例如:

以管理员权限运行命令提示符,注意,下面的命令要以管理员身份运行,否则报错

conda create --prefix C:\ProgramData\anaconda3\envs\pytorch_env python=3.8

也可以修改 .condarc 文件,将 envs_dirs 添加或修改为默认全局路径:

envs_dirs:- C:\ProgramData\anaconda3\envs

然后重新创建环境即可。

3、删除虚拟环境

通过环境名称删除

conda remove --name 环境名称 --all

通过环境路径删除

conda remove --prefix 路径 --all

4、配置镜像源

根据上述操作,以如下的环境列表为例(虚拟环境已经创建好):

在这里插入图片描述

由于安装指令都是从国外的通道下载,下载速度会非常慢。所以我们可以用国内的镜像地址下载pytorch

conda config --show

输入上述指令可以查看我们的通道地址
在这里插入图片描述

我的环境中有三个清华的镜像源。如果是之前没用过镜像源,这里只会显示dafaults。

在这里插入图片描述

镜像名镜像地址
清华源镜像https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
阿里巴巴镜像http://mirrors.aliyun.com/anaconda/pkgs/main
淘宝镜像源https://registry.npmmirror.com/

这里的淘宝镜像源不推荐,由于淘宝npm镜像的旧域名(如npm.taobao.org和registry.npm.taobao.org)已经停止服务,并且HTTPS证书已经过期,需要使用淘宝最新的镜像源。列表给出的是(2024年9月) 淘宝的最新镜像的地址。

conda config --add channels 通道地址

输入以上命令可以添加通道地址,添加后输入以下地址也可以查看通道地址(验证是否加上通道)

conda config --get

在这里插入图片描述

如果想删除通道,可执行下面代码

conda config --remove channels 通道地址

5、安装pytorch

1、首先激活环境变量

conda activate 创建的虚拟环境

在这里插入图片描述

2、进入pytorch官网,找到安装指令

点击Get started 进行如下配置

在这里插入图片描述

找到安装代码

conda install pytorch torchvision torchaudio cpuonly -c pytorch  //注意,这种就是直接从国外下载了

用镜像源安装

conda install pytorch torchvision torchaudio cpuonly –c 镜像地址

在这里插入图片描述

在这里插入图片描述

直接复制自己对应的镜像源即可

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入y即可

报错处理:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果出现如上报错,使用管理员身份进行上述步骤即可解决。

出现下图所示,就是安装完成。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6、验证pytorch是否安装成功

  • 在安装pytorch的虚拟环境下输入conda list 查看是否有pytorch

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 在虚拟环境下运行python并导入torch

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

print(torch.__version__)
  • 输入上述命令,显示PyTorch 的版本号,说明 PyTorch 已经成功安装。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四、GPU版本pytorch安装

首先和CPU版本安装一样,创建一个虚拟环境,前面提到,这里不在重复。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1、查看自己电脑的GPU

在任务管理器中可查看GPU

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果没安装显卡驱动,先安装最新的显卡驱动,到官网自行安装即可。

查看驱动版本。win + r ,输入cmd 进入终端,输入指令:

nvidia-smi

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我的 CUDA 驱动版本是 12.1,这表示驱动所支持的最大 CUDA 运行时 API 版本是 12.1。因此,如果要安装 CUDA 运行时版本,就需要确保 CUDA 驱动版本 >= CUDA 运行时版本,也就是说可以安装 12.1 及更早的版本。

2、安装pytorch

直接进入创建的虚拟环境中输入命令,安装成功:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

在这里插入图片描述

3、验证是否安装成功

指令:

import torch
print(torch.__version__)
print(torch.cuda.is_available())
  • 可以直接进入终端python运行指令检验

在这里插入图片描述
出现以上界面说明安装成功

  • 也可以直接在pycharm编辑器中验证。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用GPU环境,最后输出cu121True,说明安装成功

五、补充

1、卸载当前的PyTorch版本

进入所在的虚拟环境,输入以下指令即可。

pip uninstall torch torchvision torchaudio

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、失败的安装过程

可以利用condapip进行安装,但是我都没安装成功,这里就不在过多介绍,可能是国内的镜像源很多都不能GPU版本的安装。可以参考。严格按照用pip安装应该能成功,只不过我当时安装指令错了。

https://blog.csdn.net/weixin_44752340/article/details/130542629?fromshare=blogdetail&sharetype=blogdetail&sharerId=130542629&sharerefer=PC&sharesource=2201_75436278&sharefrom=from_link

最后我直接下载轮子文件(.whl)进行安装。

https://download.pytorch.org/whl/torch_stable.html

上面这个是pytorch轮子文件的下载链接。根据自己的需求下载。

分别下载相应的torchtorchvision

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我下载的是2.2.2版本torchtorchvision,对应的CUDA版本是11.8,python版本是3.8,正如绿色、蓝色框所示。注意后面对应的 win 和 linux。下载过程较长。

下载完后,将两个文件放在虚拟环境的目录下。然后运行:

pip install 轮子文件名(torch-2.2.2+cu118-cp38-cp38-win_amd64.whl)

但是我也安装失败了,后来我又安装的12.1的CUDA,也不行

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
应该是版本不兼容问题。

相关文章:

【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-

一、准备工作 pytorch需要python3.6及以上的python版本 我是利用Anaconda来管理我的python。可自行安装Anaconda。 Anaconda官网 Free Download | Anaconda 具体Anaconda安装教程可参考 https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshareblogdet…...

精选案例展 | 智己汽车—全栈可观测驱动智能化运营与成本优化

本案例为“观测先锋 2024 可观测平台创新应用案例大赛”精选案例,同时荣获IT168“2024技术卓越奖评选-年度创新解决方案”奖。 项目背景 近年来,中国汽车行业进入转型升级阶段,智能网联技术成为行业发展的核心。车联网、自动驾驶等技术的加速…...

MySQL 使用 `WHERE` 子句时 `COUNT(*)`、`COUNT(1)` 和 `COUNT(column)` 的区别解析

文章目录 1. COUNT() 函数的基本作用2. COUNT(*)、COUNT(1) 和 COUNT(column) 的详细对比2.1 COUNT(*) —— 统计所有符合条件的行2.2 COUNT(1) —— 统计所有符合条件的行2.3 COUNT(column) —— 统计某一列非 NULL 的记录数 3. 性能对比3.1 EXPLAIN 分析 4. 哪种方式更好&…...

Linux运维——网络管理

Linux网络管理 一、Linux网络应用要点二、命令常见用法2.1、curl2.1.1、发送GET请求2.1.2、发送POST请求2.1.3、设置请求头2.1.4、处理cookies2.1.5、处理重定向2.1.6、调试和详细信息2.1.7、使用代理2.1.8、文件上传2.1.9、其它常用选项2.1.10、综合示例 2.2、wget2.2.1、基本…...

STM32CUBEIDE FreeRTOS操作教程(十三):task api 任务访问函数

STM32CUBEIDE FreeRTOS操作教程(十三):task api 任务访问函数 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板…...

Jmeter+Jenkins接口压力测试持续集成

项目介绍 接口功能测试应用&#xff1a; http://www.weather.com.cn/data/cityinfo/<city_code>.html 测试功能&#xff1a;获取对应城市的天气预报 请求方法&#xff1a;Get 压测脚本开发工具&#xff1a;jmeter 源码脚本位置&#xff1a; https://github.com/shife…...

深入浅出ES6:现代JavaScript的基石

ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的一次重大更新&#xff0c;引入了许多新特性&#xff0c;使JavaScript更加强大、优雅和易于维护。这些特性已经成为现代JavaScript开发的基石&#xff0c;掌握它们对于任何JavaScript开发者都至关重要。本文将深入…...

实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能

下面将详细介绍如何实现使用RBF&#xff08;径向基函数&#xff09;神经网络模拟二阶电机数学模型中的非线性干扰&#xff0c;以及使用WNN&#xff08;小波神经网络&#xff09;预测模型中的非线性函数来抵消迟滞影响的功能。我们将按照以下步骤进行&#xff1a; 步骤1&#x…...

潜水泵,高效排水,守护城市与农田|深圳鼎跃

洪水是常见的自然灾害&#xff0c;在春夏季节的我国降水多为丰富&#xff0c;容易造成城市内部的洪涝灾害。特别是低洼地区的积水&#xff0c;不仅容易造成城市交通的出行不便&#xff0c;还存在潜在的隐患&#xff0c;严重影响了人们正常生活。 潜水泵作为一种高效、可靠的排水…...

易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 R-loop&#xff08;RNA-DNA杂合结构&#xff09;是转录调控、DNA复制和修复等关键细胞过程的重要组成部分。但R-loop异常积累可能会破坏基因组完整性&#xff0c;从而导致多种疾病的发生…...

115 道 MySQL 面试题,从简单到深入!

1. 什么是数据库事务&#xff1f; 数据库事务是一个作为单个逻辑工作单元执行的一系列操作。事务具有ACID属性&#xff0c;即原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xf…...

一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格&#xff0c;用于比较Flask中的…...

MFC学习笔记-1

一、编辑框和按钮 //.h文件private:CString str;//给窗口类加了一个变量&#xff08;定义一个成员变量&#xff09;&#xff0c;关联到IDC_EDIT1中&#xff08;要在实现中关联&#xff0c;源文件文件夹中&#xff09;CString str2;//接收button2&#xff0c;和IDC_EDIT2绑定 p…...

Linux搜索查找类指令

1、find指令 基本语法&#xff1a;find [搜索范围] [选项] 功能&#xff1a;将从指定目录向下递归地遍历其各个子目录&#xff0c;将满足条件的文件或目录显示在终端。 常用选项&#xff1a; 操作 命令示例 说明 查找指定路径下的所有文件 find /path/to/dir 查找指定目…...

江协科技/江科大-51单片机入门教程——P[1-1] 课程简介P[1-2] 开发工具介绍及软件安装

本教程也力求在玩好单片机的同时了解一些计算机的基本概念&#xff0c;了解电脑的一些基本操作&#xff0c;了解电路及其元器件的基本理论&#xff0c;为我们学习更高级的单片机&#xff0c;入门IT和信息技术行业&#xff0c;打下一定的基础。 目录 1.课程简介 2.开发工具及…...

监听load和hashchange事件

监听load和hashchange事件 上篇文章中&#xff0c;我们已经将菜谱的数据给拿到&#xff0c;并且已经可以渲染到页面上&#xff0c;本篇我们将为程序添加一些事件&#xff1b; 注&#xff1a;本项目来自于Jonas Schmedtmann创建&#xff0c;文章仅仅作为学习作用&#xff01; 菜…...

深度剖析Seata源码:解锁分布式事务处理的核心逻辑

文章目录 写在文章开头如何使用源码(配置转掉)基于AT模式详解Seata全链路流程Seata服务端启动本地服务如何基于GlobalTransaction注解开启事务客户端如何开启分布式事务RM和TC如何协调处理分支事务RM生成回滚日志事务全局提交与回滚小结参考写在文章开头 在当今分布式系统日益…...

在 Ansys Mechanical 中解决干涉拟合

有意和无意的过盈配合在工程设计和有限元分析 &#xff08;FEA&#xff09; 中很常见。当两个组件重叠或接触时&#xff0c;就会发生这种情况&#xff0c;从而产生应力和变形&#xff0c;必须仔细分析以确保功能正常。有意干涉&#xff0c;例如轴和轴承之间的压配合或用于固定金…...

JMeter性能问题

性能测试中TPS上不去的几种原因 性能测试中TPS上不去的几种原因_tps一直上不去-CSDN博客 网络带宽 连接池 垃圾回收机制 压测脚本 通信连接机制 数据库配置 硬件资源 压测机 业务逻辑 系统架构 CPU过高什么原因 性能问题分析-CPU偏高 - 西瓜汁拌面 - 博客园 US C…...

美国国防部(DoD)SysML v2迁移指南项目

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 分享一篇SysML v1向SysML v2迁移的资料。 下载地址&#xff1a;https://ndia.dtic.mil/wp-content/uploads/2023/systems/Thurs_1560710_Stirk.pdf 核心内容用DeepSeek整理如下&#…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制&#xff0c;重点解析"道作为序位生成器"的核心原理与实现框架&#xff1a; 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...

FOPLP vs CoWoS

以下是 FOPLP&#xff08;Fan-out panel-level packaging 扇出型面板级封装&#xff09;与 CoWoS&#xff08;Chip on Wafer on Substrate&#xff09;两种先进封装技术的详细对比分析&#xff0c;涵盖技术原理、性能、成本、应用场景及市场趋势等维度&#xff1a; 一、技术原…...

深入理解 React 样式方案

React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…...

【Java多线程从青铜到王者】单例设计模式(八)

wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本&#xff0c;sleep也是可以指定时间的&#xff0c;也就是说时间一到就会解除阻塞&#xff0c;继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒)&#xff0c;wait能被notify提前唤醒&#xf…...

break 语句和 continue 语句

break语句和continue语句都具有跳转作用&#xff0c;可以让代码不按既有的顺序执行 break break语句用于跳出代码块或循环 1 2 3 4 5 6 for (var i 0; i < 5; i) { if (i 3){ break; } console.log(i); } continue continue语句用于立即终…...

Excel 怎么让透视表以正常Excel表格形式显示

目录 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总...