当前位置: 首页 > 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整理如下&#…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...