win10安装pytorch全网最好用的教程[2023.5.7更新]

news2024/11/25 18:34:33

目录

0.关于pytorch

a. 什么是 PyTorch ?

b.  为何选择 PyTorch ?

1.安装pytorch

1.1确定关联性

1.2下载最新版本的pytorch

1.3.pytorch历史版本下载

1.4 避坑

1.4.1、猜测

1.4.2、验证

1.4.3、解决方案

1.5、检验


0.关于pytorch

a. 什么是 PyTorch ?

PyTorch 是一种用于构建深度学习模型的功能完备框架,是一种通常用于图像识别和语言处理等应用程序的机器学习。使用 Python 编写,因此对于大多数机器学习开发者而言,学习和使用起来相对简单。PyTorch 的独特之处在于,它完全支持 GPU,并且使用反向模式自动微分技术,因此可以动态修改计算图形。这使其成为快速实验和原型设计的常用选择。

b.  为何选择 PyTorch ?

PyTorch 是 Facebook AI Research 和其他几个实验室的开发者的工作成果。该框架将 Torch 中高效而灵活的 GPU 加速后端库与直观的 Python 前端相结合,后者专注于快速原型设计、可读代码,并支持尽可能广泛的深度学习模型。Pytorch 支持开发者使用熟悉的命令式编程方法,但仍可以输出到图形。它于 2017 年以开源形式发布,其 Python 根源使其深受机器学习开发者的喜爱。

值得注意的是,PyTorch 采用了 Chainer 创新技术,称为反向模式自动微分。从本质上讲,它就像一台磁带录音机,录制完成的操作,然后回放,计算梯度。这使得 PyTorch 的调试相对简单,并且能够很好地适应某些应用程序,例如动态神经网络。由于每次迭代可能都不相同,因此非常适用于原型设计。

PyTorch 在 Python 开发者中特别受欢迎,因为它使用 Python 编写,并使用该语言的命令式、运行时定义即时执行模式,在这种模式下,从 Python 调用运算时执行运算。随着 Python 编程语言的广泛采用,一项调查显示,AI 和机器学习任务受到越来越多的关注,并且相关 PyTorch 的采用也随之提升。这使得 PyTorch 对于刚接触深度学习的 Python 开发者来说是一个很好的选择,而且越来越多的深度学习课程基于 PyTorch。从早期版本开始,API 一直保持一致,这意味着代码对于经验丰富的 Python 开发者来说相对容易理解。

PyTorch 的独特优势是快速原型设计和小型项目。其易用性和灵活性也使其深受学术和研究界的喜爱。

Facebook 开发者一直努力改进 PyTorch 的高效应用。新版本已提供增强功能,例如支持谷歌的 TensorBoard 可视化工具以及即时编译。此外,还扩展了对 ONNX(开放神经网络交换)的支持,使开发者能够匹配适合其应用程序的深度学习框架或运行时。

1.安装pytorch

1.1确定关联性

用到pytorch比较多的是深度学习场景,肯定绕不开cuda、cudnn等深度学习框架的部署,那么就要注意了,pytorch与cuda的对应关系:

官网:Previous PyTorch Versions | PyTorch
CUDA Toolkit版本及可用PyTorch对应关系总结(参考官网)

CUDAToolkit版本可用PyTorch版本
7.50.4.1 ,0.3.0, 0.2.0,0.1.12-0.1.6
8.01.1.0,1.0.0 ,0.4.1
9.01.1.0,1.0.1, 1.0.0,0.4.1
9.21.7.1,1.7.0,1.6.0,1.5.1,1.5.0,1.4.0,1.2.0,0.4.1
10.01.2.0,1.1.0,1.0.1 ,1.0.0
10.11.7.1,1.7.0,1.6.0,1.5.1,1.5.0, 1.4.0,1.3.0
10.21.12.1,1.12.0,1.11.0,1.10.1,1.10.0,1.9.1,1.9.0,1.8.1,1.8.0,1.7.1,1.7.0,1.6.0,1.5.1,1.5.0
11.01.7.1,1.7.0
11.11.8.0
11.31.12.1,1.12.0,1.11.0,1.10.1,1.10.0,1.9.1,1.9.0,1.8.1,1.8.0
11.61.13.1,1.13.0,1.12.1,1.12.0
11.71.13.1,1.13.0

cuda版本确定后,pytorch要依赖此cuda版本,因为pytroch安装跟cuda对应的,比如下图,torch1.11.0只适配cuda10.2、11.3;不适配cuda10.1等其他版本cuda。

以下是pytorch从官网安装的最新版本和历史版本链接,不过,先别急着下,先看1.4,避坑的,看的时候先不急着跟着操作,如果看完后你再根据自己的cuda版本确定采用1.2、1.3还是1.4的方法: 

1.2下载最新版本的pytorch

PyTorch官网可以根据操作系统,选择cuda版本, 和选择conda命令还是pip命令:
在这里插入图片描述
例如下载最新版本的pytorch命令为:

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

1.3.pytorch历史版本下载

网址:Previous PyTorch Versions | PyTorch

1.4 避坑

我当初下载的cuda是11.1的版本,所以pytotrch也不能用最新版本(仅支持11.7于11.8的cuda),要从历史版本中下载,当我用官网指令下载适配cuda的pytorch后,出现报错:

ERROR: No matching distribution found for torchvision==0.11.2+cu111

该报错是在按官网方法用指令:

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

安装pytorch时出现的,以下是分析:

1.4.1、猜测

这个错误提示表明在指令提供的下载网址上没有找到符合要求的torchvision软件包版本,需要安装符合要求的版本。问题可能出在指定的版本号(0.11.2+cu111),这个版本可能不兼容系统或者Python环境又或者根本就不存在,可以尝试安装其他版本的torchvision软件包。

另外,可以查看Python环境是否与要求的CUDA版本兼容,以及查看你的系统是否安装了相应的CUDA驱动程序。你还可以尝试升级你的Python环境或者使用虚拟环境来解决这个问题。

1.4.2、验证

在https://download.pytorch.org/whl/cu111/torch_stable.html网址里,可以看到cu111下的torch、torchvision的目前可以用的所有版本。

1)可以看到对于torch,有win环境下torch1.10.0/cu111这个版本的安装文件 torch-1.10.0+cu111-cp38-cp38-win_amd64.wh:

2)但对于torchvisiontorchvision0.11.0/cu111这个版本是没有win环境下的安装包的,全都是linux环境下的安装包

所以会出现上面的报错,torch1.10.0/cu111找不到对应的torchvision0.11.0/cu111。。。。

在win环境下安装pytorch1.10.0/cu111(torch1.10.0+cu111、 torchvision0.11.0+cu111)是不可能安装成功的,因为就没有win环境下对应的torchvision安装包

1.4.3、解决方案

在该网页找好torch和torchvision对应好的都在契合win的系统架构的安装包,再执行相关的安装指令就能解决了。

我的cuda是11.1的版本,所以用下面这个指令,因版本而异,大家自行匹配。使用下面的命令安装torch1.9.1/cu111 + torchvision0.10.1/cu111 (pytorch1.9.1/cu111),不出意外接可以了。

pytorch官网上的安装命令:

# CUDA 11.1

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.htm

1.5、检验

用以上的三种方案之一安装后,出现下图说明安装成功

进行验证:

没问题! 

参考博客:【最新】CUDA Toolkit版本及可用PyTorch对应关系(参考官网)

安装pytorch1.10.0/cu111时报错:no matching distribution found for torchvision==0.11.0+cu111

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

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

相关文章

前端学习----webpack入门学习

webpack是前端项目工程化的具体解决方案 主要功能:它提供了友好的前端模块化开发支持,以及 代码压缩(将空格和注释全部消除,变成一行代码)、 处理浏览器端JavaScript的兼容性(只管写高级语法,自动向下兼容。例如ie8不支持let 语法…

【Shell】一天快速入门

1 Shell解析器 Linux提供的shell解析器有6种: /bin/sh /bin/bash /sbin/nologin /bin/csh /bin/dash /bin/tashsh是bash的软连接。 2 Shell脚本 2.1 hello.sh脚本 #!/bin/bash echo hello world!#! 告诉系统这个脚本需要什么解释器来执行; 脚本以#!…

NCNN----Monodepthv2单目深度估计 小米手机部署

题目要求:学习了解单目深度估计模型MonoDepthv2,基于NCNN推理框架部署到小米手机 MonoDepthv2 论文:Digging Into Self-Supervised Monocular Depth Estimation MonoDepthv2 源码:Monodepth2 GitHub 分析: 1&#xff0…

Illustrator如何进行任务自动化之实例演示?

文章目录 0.引言1.动作的录制2.对文件播放动作3.批处理 0.引言 因科研等多场景需要进行绘图处理,笔者对Illustrator进行了学习,本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结,本文对任务自动化进行…

Cadence技巧总结学习(DRC、Annotate)持续更新~

Cadence技巧总结学习持续更新~ 你还可以再哪里看到这篇文章:知乎 1. 画叉 对于芯片上不用的引脚信号画上号,如下: 按大写X就可以了,或是双脚引脚,在跳出的界面中,Is No Connect上✔。 2. 画线快捷键&#…

【关于C++中----智能指针】

文章目录 一、概念引入二、内存泄漏2.1 内存泄漏概念及其危害2.2 内存泄漏分类2.3 避免内存泄漏 三、智能指针的原理3.1 RAII3.2 像指针一样 四、三类智能指针4.1 auto_ptr4.2 unique_ptr4.3 shared_ptr 五、循环引用和weak_ptr 一、概念引入 在我们日常写代码过程中&#xff…

ARM学习(21)STM32 外设Can的认识与驱动编写

笔者来聊聊can的认识以及can接收数据的驱动编写 1、STM32 Can 外设的认识 Can的特性就不多说了,主要来聊聊can的一些标识符以及收发状态。can有一套收发机制,发送和接收都有硬件缓存,叫邮箱,通过下面的图可以看出,下面…

ESP32学习笔记 -- ESP32-S3 使用外部 PSRAM

ESP32-S3是乐鑫科技推出的一款专为物联网而生的SOC芯片,该芯片同时支持WIFI和BLE蓝牙功能,集成了高性能的Xtensa 32位LX7双核处理器,最高主频可达240MHz。 根据乐鑫官方资料介绍,该芯片内置512KB SRAM片上内存,并且具有45个可编程GPIO管脚和丰富的通信接口。为了更好地扩…

Flask框架之路由与蓝图的使用

路由与蓝图 路由路由概述路由的基本使用查看路由信息url_map对象命令行方式 HTTP请求方法 蓝图概述蓝图的基本使用蓝图的拆分指定蓝图的url前缀蓝图构造URL蓝图静态文件蓝图模板目录 路由 路由概述 在Flask中,路由用于将HTTP请求与特定的Python函数相匹配。通过定义…

K8s-Pod概念、创建及常用命令

文章目录 一、Pod概念1、Pod是什么?2、Pod网络共享实现方式3、Pod存储共享方式4、创建Pod整体流程 二、使用YAML文件定义Pod资源1、Pod资源清单YAML文件书写技巧1. YAML语法格式:2. 配置Linux tab缩进两个空格3. 使用kubectl explain帮助命令 2、创建Pod…

章节2:01-Java序列化和反序列化

章节2:01-Java序列化和反序列化 01-Java序列化和反序列化 基础环境 JDK解压版:包含Java运行时环境 IDEA:开发工具 Maven:jar包依赖管理 Tomcat:HTTP服务器 Burp Suite:发送HTTP请求 Kali&#xff1…

ANSYS APDL谐响应分析——悬臂梁的频响函数计算以及幅值、角度(相位)、分贝计算

问题描述 研究一根悬臂梁,材质为钢材。长度 L 2 L2 L2 米;截面为矩形,矩形的长度为 H 5 c m H 5cm H5cm,宽度为 B 2 c m B 2cm B2cm 。 建模思路: 先建立节点,然后用节点生成单元。使用n命令&…

book-riscv-rev1.pdf 翻译(自用,更新完成)第一章 操作系统接口

Job of operating system: 操作系统使得多个程序分享一台计算机,提供一系列仅靠硬件无法支持的服务。 管理与抽象低级别硬件(如:文件处理程序不需要关注使用哪种硬盘)使得多个程序分享硬件(programs that can run at…

797. 差分(C++和Python3)——2023.5.7打卡

文章目录 QuestionIdeasCode Question 输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l,r,c ,表示将序列中 [l,r] 之间的每个数加上 c 。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m 。 第二…

高性能流媒体硬解码

目录 高性能流媒体硬解码前言1. What、Why and How1.1 What1.2 Why?1.3 How? 2. 离散傅里叶变换(DFT)2.1 JPEG编码2.2 哈夫曼编码(Huffman Coding) 3. 视频流媒体前置知识3.1 视频文件的构成3.2 视频的编码与封装3.3 H264编码的分层3.4 RTSP之RTP(Real-t…

【clang】安装clang编译器并将linux默认编译器改为clang

目录 省心操作法手动安装 本文是他人智慧的总结个人实践。 省心操作法 缺点: clang版本不能自己选择;我的系统是ubuntu 20,安装后是clang10.0版本 优点:省心,基本不会踩坑 手动安装 参考这篇文章ubuntu20.04 安装cl…

RabbitMQ --- 死信交换机

一、简介 1.1、什么是死信交换机 什么是死信? 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false…

超详细-自动化测试从选型到落地,2023年我从10k涨到了18k*14薪...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

系统集成项目管理工程师 下午 真题 及考点(2021年上下半年)

文章目录 2021年下半年试题一:第18章 项目风险管理,风险应对策略,风险的性质(客观、偶然、相对、社会、不确定)试题二:第9章 项目成本管理,执行绩效(即CV和SV)&#xff0…

HAL库版FreeRTOS(中)

目录 FreeRTOS 任务切换PendSV 异常PendSV 中断服务函数FreeRTOS 确定下一个要运行的任务函数vTaskSwitchContext()函数taskSELECT_HIGHEST_PRIORITY_TASK() PendSV 异常何时触发FreeRTOS 时间片调度实验功能设计软件设计下载验证 FreeRTOS 内核控制函数FreeRTOS 内核控制函数预…