【安装教程】Windows10环境下Pytorch(GPU版)的安装与配置

news2025/1/19 13:11:41

目录

  • Pytorch的概念
  • 安装前要求
  • 一、NVIDIA驱动查看
  • 二、Anaconda的安装
    • 2.1 Anaconda的安装
    • 2.2 创建虚拟环境
    • 2.3 激活虚拟环境
  • 三、CUDA ToolKit的安装(选做,CPU版本可跳过)
    • 3.1 CUDA安装包的下载(以CUDA11.6.0为例)
    • 3.2 CUDA的安装
    • 3.3 验证CUDA安装是否成功
  • 四、cuDNN的安装(选做,CPU版本可跳过)
    • 4.1 cuDNN的下载
    • 4.2 复制到CUDA文件夹
  • 五、Pytorch的安装
    • 5.1 执行安装命令
    • 5.2 安装验证
  • 六、安装验证
    • 6.1 创建一个pycharm项目,并且选择虚拟环境作为解释器
    • 6.2 创建一个测试文件

Pytorch的概念

        PyTorch是一个开源的深度学习框架,由Facebook的人工智能研究团队开发。它提供了灵活的张量计算和自动求导功能,适合于研究和生产环境。由于其动态计算图的特性,PyTorch在模型构建和调试上非常方便,受到众多研究人员和开发者的欢迎。PyTorch支持GPU加速,具备丰富的库和工具,例如用于计算机视觉的TorchVision和用于自然语言处理的TorchText。


安装前要求

  • Windows 10电脑
  • 电脑显卡品牌为英伟达(Nvidia)

一、NVIDIA驱动查看

        以博主本机为例,显卡为NVIDIA GeForce GTX 1650,最高支持的CUDA版本是12.6。
命令:nvidia-smi
在这里插入图片描述


二、Anaconda的安装

2.1 Anaconda的安装

具体内容参考这篇博客:安装 Anaconda 3 开发环境


2.2 创建虚拟环境

        虚拟环境是一种工具,可以让您在同一台计算机上创建多个独立的Python环境,每个环境可以拥有自己的Python解释器版本、包和依赖项。通过使用虚拟环境,您可以为每个项目创建一个独立的环境,确保项目之间的依赖关系互不干扰,避免包冲突问题。

在这里插入图片描述

打开Anaconda Prompt后输入以下命令创建一个名为pytorch的虚拟环境,使用的python版本为3.10

conda create -n pytorch python=3.10

运行到下图步骤时,输入y后按回车
在这里插入图片描述
出现下图即表示虚拟环境创建成功

在这里插入图片描述


2.3 激活虚拟环境

创建完成后,激活该环境:

conda activate pytorch

激活输入下面命令查看conda环境,发现被激活的环境已经加入conda的虚拟环境

conda info -e

在这里插入图片描述


三、CUDA ToolKit的安装(选做,CPU版本可跳过)

3.1 CUDA安装包的下载(以CUDA11.6.0为例)

        网址:https://developer.nvidia.com/cuda-toolkit-archive
选择需要下载的版本,这里以11.6.0为例
在这里插入图片描述

按照自己需要选择对应的版本,注意:下载方式分为本地和网络下载,两种均可。

在这里插入图片描述


3.2 CUDA的安装

打开下载到电脑的安装包,开始执行安装步骤,这里默认安装到C盘,可以根据个人情况修改安装地址。

在这里插入图片描述

安装选项选择精简(推荐),省事,需要自定义的可以选择。

在这里插入图片描述


3.3 验证CUDA安装是否成功

执行完所有安装步骤后,打开命令提示符cmd,输入nvcc -V 查看是否安装成功
出现下图表示CUDA Tookit安装成功。
在这里插入图片描述


四、cuDNN的安装(选做,CPU版本可跳过)

        cuDNN(CUDA Deep Neural Network library)是 NVIDIA 提供的一个高性能深度学习库,专门用于加速深度神经网络的训练和推理。它是建立在 CUDA 之上的,能够利用 NVIDIA GPU 的并行计算能力。

4.1 cuDNN的下载

官网:https://developer.nvidia.com/rdp/cudnn-archive
注意:这个需要注册账号,用邮箱注册即可,填写相关信息。

在这里插入图片描述


4.2 复制到CUDA文件夹

在这里插入图片描述


五、Pytorch的安装

https://pytorch.org/get-started/previous-versions/,进入官网,找到需要的命令。
以本机为例,11.6查找11.6对应的conda或pip命令,这里安装。

5.1 执行安装命令

OSX(MAC)

# conda
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 -c pytorch

Linux and Windows

# CUDA 11.6
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
# CUDA 11.7
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
# CPU Only
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 cpuonly -c pytorch

5.2 安装验证

进入torch虚拟环境,执行pip show torch
出现下图表示安装成功
在这里插入图片描述


六、安装验证

        那么,将以上步骤执行完毕后,Pytorch的整体安装基本完成,接下来在Pycharm里测试torch是否可以查到自己的GPU,并且执行torch的简单方法。

6.1 创建一个pycharm项目,并且选择虚拟环境作为解释器

设置->项目->Python解释器->添加解释器->添加本地解释器->Virtualenv环境->选择现有->找到虚拟环境文件夹里的python.exe->自动识别python版本->确定

在这里插入图片描述

在这里插入图片描述


6.2 创建一个测试文件

创建下面文件,用来测试 PyTorch 是否能访问 GPU,并进行一些基础的语法测试。

import torch

def test_gpu_access():
    # 检查是否有可用的 GPU
    if torch.cuda.is_available():
        device = torch.device("cuda")  # 使用 GPU
        print("GPU is available. Using:", torch.cuda.get_device_name(0))
    else:
        device = torch.device("cpu")  # 使用 CPU
        print("GPU is not available. Using CPU.")

    return device

def basic_tensor_operations(device):
    # 创建一个随机的张量并转移到指定设备
    x = torch.rand(5, 3, device=device)
    y = torch.rand(5, 3, device=device)

    print("Tensor X:", x)
    print("Tensor Y:", y)

    # 张量加法
    z = x + y
    print("Tensor Z (X + Y):", z)

    # 计算张量的均值
    mean_z = z.mean()
    print("Mean of Tensor Z:", mean_z.item())

if __name__ == "__main__":
    device = test_gpu_access()
    basic_tensor_operations(device)

下面运行结果即代表Pytorch安装成功,撒花!!!❀❀❀

在这里插入图片描述


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

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

相关文章

架构设计笔记-19-大数据架构设计理论与实践

知识要点 案例分析 1.Lambda架构优缺点 2.web架构设计 3.web系统架构设计相关技术 论文

面向对象的继承性

目录 1、继承的概念 2、方法的重写 3、重载和重写的区别 4、super关键字 5、this和super的区别 6、final关键字 7、抽象类 8、接口 1、继承的概念 在程序中,继承描述的是事物之间的所属关系,通过继承可以使很多事物之间形成一种关系体系。 在Java…

51单片机的智能空调【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温湿度传感器继电器按键等模块构成。适用于空调温度控制等相似项目。 可实现功能: 1、LCD1602实时显示室内温湿度、运行模式、设定温度和定时时间 2、首先选择空调的运行模式,如加热、制冷、除湿&…

@RequestMapping对不同参数的接收方式

1、简单参数 1、参数名与形参变量名相同,定义形参即可接收参数,且会自动进行类型转换。 RequestMapping("/simple")public String simpleParam(String name,int age){String username name;int userAge age;System.out.println(username&…

芝法酱学习笔记(0.7)——harbor与SpringBoot容器化docker部署

前言 之前我们主要讲的jar包部署。使用jar包部署可能导致不同服务互相争抢资源(隔离性),不同服务可能需要不同的jdk环境,有时也会造成困扰。故在微服务时代,我们通常使用docker部署 一、docker安装 docke相关的知识…

Dev-C++萌新学习福利3

朝鲜球作品原创https://blog.csdn.net/2401_86502594?spm1011.2124.3001.5343 清北互联地址https://www.17ac.cn/#/ 萌新福利 作品成本6999元!!! 清北互联团队编写课程,本人不收费。亏本买卖,良心服务,同嫂…

ASP.NET Core8.0学习笔记(二十)——EFCore导航属性与外键

一、什么是实体间关系 数据库表(实体)之间的关系:一对一(学生-成绩)、一对多(学生-科目)、多对多(教师-班级)。数据库中,每一个实体可以由主键唯一标识&…

自学1个月拿金奖!北交大学子分享昇腾AI原生创新算子挑战赛金奖之路

近年来在人工智能领域,算子开发的价值日益凸显,算子开发也受到越来越多年轻开发者的青睐。对于高校开发者,如何从零开始学习算子开发,提升软硬结合的AI开发能力?成功已举办两个赛季的昇腾AI原生创新算子挑战赛&#xf…

IDEA中的快捷键大全--超详细

目录 一、通用类型 1.1 图示 1.2 表格化 二、编写速度提升 2.1 图示 2.1.1 表格化 2.2 图示 2.2.1 表格化: 三、类结构,查找和查看源码 3.1 图示 3.2 表格化 四、查找,替换和关闭 4.1图示 4.2 表格化 五、调整格式 5.1 图示 5.2 表格化 六、快捷键的自主定义…

docker login 命令登录harbor镜像仓库(含报错)

作者:程序那点事儿 日期:2024/02/02 14:10 执行登录命令:docker login -uadmin 192.168.43.106:8880 报错: Error response from daemon: Get "https://192.168.43.106:8880/v2/": http: server gave HTTP response t…

计组-CPU构成(运算器与控制器的组成)

整个计算机,由主机和外设2部分构成 计算机结构中: 主机(这里的主机包含的部分远比我们主机箱里的部件要少):只包括2大部件,一个是CPU,一个是主存储器(即我们平时说的内存&#xff…

专题1:方向导数与梯度

一、回忆偏导数 多元函数(比如有x、y两个变量)在某个点有两个偏导数,一个是关于x的偏导数,一个是关于y的偏导数。如下所示: 所谓偏导数,其实就是某点处函数在x的正方向或y的正方向上的变化率。从图像上来看…

JavaSE--全盘拿下数组的关键要领

嗨嗨大家~我来啦!今天我们来进入数组的学习吧。 目录 一 数组的定义 1 创建数组 2 初始化数组 二 数组的使用 1 数组的访问 2 数组的遍历 2.1 for 循环打印 2.2 for-each 打印数组 三 数组是引用类型 3.1 JVM内存分布 3.2 区分基本类型与引用类型变…

线程相关知识点

一、线程 1.1 线程的概念 线程是轻量级的进程。 进程是分配资源的最小单位,线程是调度的最小单位。 线程不会单独分配内存空间,线程共用进程的资源。 线程之间通信比较方便,但是不安全。 多线程没有多进程安全。 多线程效率比较高。线程创建…

嵌入式学习-I/O-Day01

嵌入式学习-I/O-Day01 IO介绍 IO分类 文件IO 标准IO 标准IO的调用逻辑 标准IO缓存机制 标准IO的特点 * 流 定义 流的分类 流指针FILE * 缓存区的分类 * 全缓存—》基于文件 行缓存-》基于终端stdin/stdout 不缓存:stderr 标准IO的函数接口 ​​​​…

小白都来用这款AI绘画神器,IDEOGRAM2.0,轻松画出高质量图片

大家好!我是宇航,一位喜欢AI绘画的10年技术专家,专注于输出AI绘画与视频内容 今天给大家介绍一款绝对的生图神器——Ideogram2.0! 不论你是AI小白,手残党还是资深玩家,无论你是做网页设计,电商&#xff0c…

React路由 基本使用 嵌套路由 动态路由 获取路由参数 异步路由 根据配置文件来生成路由

文章目录 React-router的三个版本react-router使用嵌套路由动态路由 获取路由参数Params参数Query参数Location信息 控制跳转地址异步路由根据配置文件生成路由 React-router的三个版本 React-router 服务端渲染使用React-router-dom 浏览器端渲染使用React-router-native Rea…

【STM32CubeMX开发】-2.2-TIM_输出一个PWM信号

目录 1 Tim定时器的时钟源 2 Tim定时器的配置 2.1 PWM配置 2.2 中断配置 3 生成代码 4 测试结果 结尾 1 Tim定时器的时钟源 TIM3的时钟来源自APB1 Timer clocks,时钟树上所有总线频率均设置为了STM32F0能达到的最高频率,此时APB1 Timer clocks …

【CTF Web】Pikachu ../../ Writeup(路径遍历)

目录遍历漏洞概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中&a…

Diffusion model原理:李宏毅篇(1)

本文是对李宏毅老师相关视频的记录。视频连接:Diffusion Model数学原理(一) 1. 基本概念 slide注释有一个加噪的扩散过程和一个去噪生成图像的过程VAE与Diffusion model有类似的地方。Diffusion model加噪的过程可以看成是VAE的encoder,去噪的过程看成是VAE的decoder2. DD…