pytorch安装教程

news2025/1/11 10:16:26

写在前面:配置pytorch着实有很多坑,不过最终结果算好的,话不多说,直接上干货。其中想要知道如何解决torch.cuda.is_available()返回false的,直接跳到步骤5pytorch安装。python版本至少是3.6及以上。

1、前言

        安装pytorch需要安装Anaconda、cuda、cuDnn、torch,本次机器配置如下:win10 64位操作系统,GTX3070,其中安装的上述版本如下(时间2023.9.24):

Anaconda3-5.3.1-Windows-x86_64  (去官网下载Download Success | Anaconda)

cuda_11.7.0_516.01_windows.exe(去官网下载即可CUDA Toolkit Archive | NVIDIA Developer 解释下为什么下载11.7,原因是cudcnn官网上只有11.7版本的,但是后续发现不一定要下载11.7版本,可以根据自己显卡来下载)

cudnn-windows-x86_64-8.7.0.84_cuda11-archive(该版本适用于11.XX版本的cuda,下载该版本即可,官网链接:Log in | NVIDIA Developer)

2、 Anaconda3安装

2.1 安装过程

下载链接:Download Success | Anaconda      

下载下来是一个Anaconda3-5.3.1-Windows-x86_64.exe

双击Anaconda3-5.3.1-Windows-x86_64.exe,全部直接默认即可。

安装完成后,在系统变量中添加环境变量,如下:

2.2 检查安装配置是否成功

Win+R输入cmd打开命令行 ,输入conda会显示相关命令选项

输入conda -V或者conda --version命令检查下安装配置是否成功

也可以输入conda info显示相关信息:

输入python会发现此时python也是带conda的版本

3、cuda安装

3.1 安装过程

下载链接:CUDA Toolkit Archive | NVIDIA Developer

本次选择cuda11.7版本进行安装,双击安装包默认即可完成安装。

3.2 检查安装是否成功

Win+R输入cmd打开命令行 ,输入 nvcc --version,可以看到我安装的是11.7

4、安装cuDNN

4.1 环境配置

安装cuDNN版本根据cuda进行选择(下载链接cuDNN Archive | NVIDIA Developer),由于本文是cuda11.7,因此选择了cuDNN8.7版本。

下载的cuDNN是一个压缩包,将其解压缩后,得到如下文件:

此时,将bin、include、lib文件复制粘贴到cuda安装目录下,里下图:

4.2 检查安装是否成功

Win+R输入cmd打开命令行 ,输入 cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\demo_suite (该路径根据自己安装实际路径,进入该路径下,运行bandwidthTest.exe与deviceQuery.exe,如果运行结果result均为pass,则表明安装成功。

5、 pytorch安装

这也是本博客与很多博客不同的地方,如果按照很多博客方法从官网下,使用pip或者conda安装torch均错误,在torch.cuda.is_available()返回false,即torch无法调用GPU。

这是由于在国内不好下载GPU-cuda,只有CPU-cuda。下面给出一种切实可行的方案。

去网站https://download.pytorch.org/whl/torch/,进入torch下载对应的带GPU的torch

进到torch,可以看到有各种版本的torch的whl文件,如:torch-1.13.0+cu116-cp37-cp37m-win_amd64.whl,意为torch1.13.0、cuda11.6、python3.7、win 64位系统的版本。

找到你电脑上安装的python、cuda版本,比如我的电脑是python=3.7、cuda=11.7(另外说一下,python的版本是你从cmd控制台上查询的版本,而不是你电脑上安装的版本!!!)所以,最后我选择的版本如下

(PS:在安装python虚拟环境时,python版本最高大于等于3.7,因为在上述网站中没有cp36的版本。)

    选好whl文件后,下到本地,然后打开anaconda powershell prompt(anaconda3) (cmd应该也行),切换到自己的虚拟环境下。

如果你没有创建自己的虚拟环境,其创建过程如下,打开anaconda prompt,输入如下命令,其中python版本是你电脑上安装的版本

conda create -n pytorch python=3.7

PS:倘若无法激活自己创建的虚拟环境torch,采用如下命令:

先输入conda info --envs

再输入 activate

最后输入 conda activate pytorch

在创建好的虚拟环境后,再运行命令:

pip cache purge 

再运行安装之前下载的whl文件即可,如下:

pip3 install E:\soft\major\Pytorch\torch-1.13.1+cu117-cp37-cp37m-win_amd64.whl

稍等会,就安装好了。

如果重新进入,点击anaconda prompt,输入 conda info --envs

再输入conda activate pytorch

再输入python

再输入 import torch

最后输入 torch.cuda.is_available()

结果返回true,

后面就可以使用cuda干活了

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

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

相关文章

API 设计/开发/测试工具:Apifox与怎么通过拦截器

目录 一、测试接口如何创建? 二、如何添加body和header? 三、如果项目设置的有拦截器? 四、拦截器概念: 4.1使用拦截器概念 4.2 先写一个配置类WebMvcConfig.java 4.3 AuthInitInterceptor拦截器中实现 一、测试接口如何创建…

Linux 内存workingset Refault Distance算法源码及源码解析

概述 内核mm子系统中有一个workingset.c实现了refault distance算法,发现网络逻辑介绍该算法的文章主要是复制自奔跑吧内核一书中的内容,均比较雷同,讲述的角度比较难以理解,我第一看到的时候琢磨了2天才明白,本文希望…

Python中使用EMD(经验模态分解)

在Python中使用EMD(经验模态分解)进行信号分解时,通常可以设置信号分解的数目。EMD算法的目标是将信号分解成多个称为“本征模态函数”(Intrinsic Mode Functions,简称IMF)的成分,每个IMF都代表…

调试(修复错误)

什么是一个软件bug? ● 软件错误:计算机程序中的缺陷或问题。基本上,计算机程序的任何意外或非预期的行为都是软件缺陷。 ● bug在软件开发中是完全正常的! ● 例如,现在我们存在数组,我们现在需要将这个数组颠倒排序 意外的结…

7.15 SpringBoot项目实战 【学生入驻】(上):从API接口定义 到 Mybatis查询 串讲

文章目录 前言一、service层 和 dal层方式一、Example方式方式二、Mybatis XML方式方式三、Mybatis 注解方式 二、web层 StudentController最后 前言 接下来我们实战【学生入驻】,对于C端学生端,一切交互开始于知道 当前学生是否入驻、是否有借阅资格&a…

【重新定义matlab强大系列十五】非线性数据拟合和线性拟合-附实现过程

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

人绒毛膜促性腺激素(HCG)介绍

人绒毛膜促性腺激素 HCG)是妊娠期产生的一种肽类激素,由受孕后不久的胚胎产生,随后由合胞体滋养层(胎盘的一部分)合成。它的作用是防止卵子黄体的解体,从而维持孕酮的分泌,而孕酮对人类怀孕至关…

常用圆圈字符“圆圈字符替换器”

本文收录了162个常用圆圈字符,文内有“圆圈字符自动替换器”。 (本笔记适合熟悉字符串数据类型的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》&#x…

分享从零开始学习网络设备配置--任务3.6 使用默认及浮动路由实现网络连通

任务描述 某公司随着规模的不断扩大,现有北京总部和天津分部2个办公地点,分部与总部之间使用路由器互联。该公司的网络管理员经过考虑,决定在总部和分部之间的路由器配置默认路由和浮动路由,减少网络管理,提高链路的可…

PHP8中伪变量“$this->”和操作符“::”的使用-PHP8知识详解

对象不仅可以调用自己的变量和方法,也可以调用类中的变量和方法。PHP8通过伪变量“$this->”和操作符“::”来实现这些功能。 1.伪变量“$this->” 在通过对象名->方法调用对象的方法时,如果不知道对象的名称,而又想调用类中的方法…

互联网医院|互联网医院系统引领医疗科技新风潮

互联网的迅速发展已经改变了人们的生活方式,而医疗领域也不例外。近年来,互联网医院应运而生,为患者和医生提供了更便捷、高效的医疗服务。本文将深入探讨互联网医院的系统特点、功能以及未来的发展方向,为您展现医疗行业的新时代…

代码随想录算法训练营第23期day4| 24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

目录 一、(leetcode 24)两两交换链表中的节点 二、(leetcode 19)删除链表的倒数第N个节点 思路 三、(leetcode 160)链表相交 四、(leetcode 142)环形链表II 思路 一、&#xf…

使用华为eNSP组网试验⑴-通过Vlan进行网络设备间通讯

在2019年学习网络的时候是从思科产品开始学的,那个时候接触了思科的6506、4506、3750、3550、2950,因为网络设备多,基本上是在多余的设备上直接操作,掌握后再上现场设备中去操作。当时使用了思科的模拟器CISCO Packet Tracer&…

驱动开发练习,platform实现如下功能

实验要求 驱动代码 #include <linux/init.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/mod_devicetable.h> #include <linux/of_gpio.h> #include <linux/unistd.h> #include <linux/interrupt…

google sitemap Sitemap could not be read

google一直也不提示具体原因。直到换个域名&#xff0c;发现可以提交sitemap。去别就是没有www的可以&#xff0c;带www的不行。应为sitemap的地址带www&#xff0c;但是sitemap里面的url内容是不带www&#xff0c;属于非法格式&#xff0c;所以一直报错。更正了sitemap地址后&…

数据库常用指令

检查Linux系统是否已经安装了MySQL&#xff1a; sudo service mysql start

89. 格雷编码

解题思路&#xff1a; 解法一&#xff1a;找规律&#xff0c;2-4位格雷码的码表如下图所示&#xff08;二进制表示&#xff09;&#xff1a; 可以发现&#xff0c;n位格雷码序列可以由n-1位格雷码序列得到&#xff0c;满足递归规则&#xff0c;具体构造规则如下&#xff1a; …

golang 通过案列感受下内存分析

package main // 声音文件所在的包&#xff0c;每个go文件必须有归属的包 import ("fmt" )// 引入程序中需要用的包&#xff0c;为了使用包下的函数&#xff0c;比如&#xff1a;Printinfunc exchangeNum(num1 int, num2 int){var t intt num1num1 num2num2 t }…

stc8H驱动并控制三相无刷电机综合项目技术资料综合篇

stc8H驱动并控制三相无刷电机综合项目技术资料综合篇 🌿相关项目介绍《基于stc8H驱动三相无刷电机开源项目技术专题概要》 🔨停机状态,才能进入设置状态,可以设置调速模式,以及转动方向。 ✨所有的功能基本已经完成调试,目前所想到的功能基本已经都添加和实现。引脚利…

【云原生】聊聊为什么需要docker以及其基础架构

为什么需要docker 在没有docker之前&#xff0c;我们开发、测试、生产其实是根据不同的服务器进行配置的&#xff0c;很可能因为软件配置不同而导致的生产事故&#xff0c;那么如果能较好的解决软件和配置等封装成一个可运行的软件&#xff0c;无需关注配置&#xff0c;那么是…