深入浅出学习Pytorch—Pytorch简介与2024年最新安装(GPU)

ops/2024/9/25 5:53:35/

深入浅出学习Pytorch—Pytorch简介

学习原因:Pytorch日益增长的发展速度与深度学习时代的迫切需要

Pytorch模型训练

pytorch实现模型训练包括以下的几个方面(学习路线

  1. 数据:数据预处理与数据增强
  2. 模型:如何构建模型模块
  3. 损失函数:创建并设置损失函数的超参数
  4. 优化器:管理模型参数
  5. 迭代训练:观察训练效果,并绘制Loss/Accuray曲线
  6. 模型应用:图像分类、图像分割、目标检测。

Pytorch简介

2017年1月,FAlR(FacebookAl Research)发布PyTorch。

PyTorch是在Torch基础上用python语言重新打造的一款深度学习框架Torch是采用Lua语言为接口的机器学习框架,但因Lua语言较为小众,导致Torch知名度不高。

在这里插入图片描述

解释器与工具包

解释器:将python语言翻译成机器指令语言python.exe(解释器)
问题:python2与python3不兼容

工具包:工具包又称为依赖包、模块、库、包python之所以强大是因为拥有大量工具包内置包:os、sys、glob、re、math等第三方包:pytorch,tensorflow,numpy等
在这里插入图片描述

通常存在的位置:虚拟环境下的lib文件夹下面

涉及到了虚拟环境的概念:引入了Anaconda这类管理工具

其中包括了 Base虚拟环境,python解释器,conda pip等管理工具,常见的包等工具。

创建的虚拟环境与Base环境基本相同 ,我们在Pycharm中配置对应需要使用的虚拟环境

conda config --show channels  (查看镜像源)
conda config --remove channels <channel_name>  (删除镜像源)
持久添加通道:condaconfig--addchannels通道地址
删除通道:condaconfig--removechannels通道地址

显卡GPU与驱动

GPU (Graphics ProcessingUnit)

显卡,主要就是用于在屏幕上显示图像。用于与视频,图像处理相关的任务。

显卡:独立显卡,核显。

驱动:让计算机识别特定的硬件。

深度学习显卡,CUDA深度学习显卡,英伟达品牌的显卡。NVIDIA有了CUDA,我们就可以操作英伟达品牌的显卡。

  • NVIDIA驱动:硬件显卡驱动,是为了告诉系统如何使用这张显卡的。
  • CUDA:NVIDIA为了构建自己的护城河而开发的高性能计算库,主要用于3D渲染和深度学习等。
  • CUDNN:NVIDIA针对深度学习而开发的,在CUDA之上的深度学习工具库。
  • 简单来说,就是如果你想加速你的AI程序的训练和推理速度,那么 CUDA 与 CUDNN 是必须的。

在这里插入图片描述

安装前准备

判断是否有英伟达的GPU

在任务管理器中确定GPU的型号 例如我自己的电脑中带的GPU是4060的显卡(8G显存)

在这里插入图片描述

  1. 首先,确定自己显卡的算力
  2. 确定自己的可选择CUDARuntimeVersion
  3. 确保自己的CUDADriver版本>=CUDARuntime版本

首先要验证英伟达的显卡驱动安装成功了:打开终端后,输入 “nvidia-smi”,如果有如下图所示的结果,就说明NVIDIA驱动安装成功了:

在这里插入图片描述

根据命令行可以确定支持的CUDA版本可以到12.4的型号上。但也要通过最新的官网文档进行确认

https://en.wikipedia.org/wiki/CUDA
在这里插入图片描述
在这里插入图片描述
我自己的是新的电脑,可以安装全新的驱动。
在这里插入图片描述

pytorch这里可以支持到12.1的驱动版本,在之后安装cuda时我们选择安装12.1的版本号来进行实验

配置镜像加速

如何查看配置文件中有哪些通道?
condaconfig–get
condaconfig–show
conda install xxx-c通道地址
conda create yyy -c 通道地址

核心技巧:配置文件的镜像地址默认保持不变,而使用-c参数只在当前的安装中生效

确定cuda runtimeversion

通过上面对pytorch版本的分析我们确定安装的版本为12.1的最新版本

如果对应的时老的显卡信息则需要找到历史版本的记录信息。

在这里插入图片描述

安装对应版本的cuda

在官网中找到指定要安装的cuda版本,我这里时12.1.0的版本,与pytorch中的版本型号进行对应。

https://developer.nvidia.com/cuda-toolkit-archive
在这里插入图片描述
下载windows64位的安装包
在这里插入图片描述

安装相对应版本的cuDNN

https://developer.nvidia.com/rdp/cudnn-archive

在这里插入图片描述
下载完成安装包之后按照对应的步骤安装好cuda12.0.0.1的驱动。

在这里插入图片描述
等待一段时间之后即可安装完成conda(需要一定时间的验证过程)
在这里插入图片描述
提示:推荐使用自定义下载的方式来进行安装,许可协议自定义安装路径

在这里插入图片描述
之后等待安装结束,同时验证安装是否成功,完成后配置对应的环境变量信息。

验证CUDA安装是否成功

找到D盘的安装位置
在这里插入图片描述

添加环境变量

参考位置:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64

实际对应的位置:
在这里插入图片描述

安装cudnn

然后,对cudnn 进行解压,最后将解压后的 bin,include,lib 文件夹下的内容拷贝 到 cuda 对应的 bin,include,lib 下即可。至此,我们就完全安装了 AI 相关硬件环境。

在这里插入图片描述

三个文件夹对应位置安装

验证安装是否成功

首先win+R启动cmd,cd到安装目录下的 …\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe(进到目录后需要直接输“bandwidthTest.exe”和“deviceQuery.exe”),应该得到下图:

两个pass代表安装成功。

在这里插入图片描述
在这里插入图片描述

pytorch_153">虚拟环境安装pytorch

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

在终端中使用命令进行安装安装完成之后进行验证。(到此pytorch安装成功)
在这里插入图片描述
环境安装选择在D盘,空间需要2.4G的空间(此时安装完成进行代码的验证)
在这里插入图片描述

验证GPU版本的Pytorch安装成功

import torch
#%%
torch.__version__
#%%
torch.cuda.is_available()
#%%
# 返回当前设备索引
torch.cuda.current_device()
#%%
# 返回GPU的数量
torch.cuda.device_count()
#%%
# 返回gpu的名字,设备索引默认从0开始
torch.cuda.get_device_name(0)
#%% md
### GPU版本的pytorch安装成功

在这里插入图片描述


http://www.ppmy.cn/ops/31027.html

相关文章

在HTML中使用JavaScript实时显示当前日期和时间(结尾完整例程)

在Web开发中&#xff0c;经常需要在网页上显示当前的日期和时间。HTML本身并不具备这样的动态功能&#xff0c;但我们可以借助JavaScript来实现。JavaScript是一种常用的前端脚本语言&#xff0c;它可以轻松地获取系统时间&#xff0c;并将其插入到HTML元素中。 下面是一个简单…

【云原生】Docker 实践(五):搭建私有镜像 Harbor

【Docker 实践】系列共包含以下几篇文章&#xff1a; Docker 实践&#xff08;一&#xff09;&#xff1a;在 Docker 中部署第一个应用Docker 实践&#xff08;二&#xff09;&#xff1a;什么是 Docker 的镜像Docker 实践&#xff08;三&#xff09;&#xff1a;使用 Dockerf…

jenkins 部署springboot 项目

文章目录 持续集成指定tag发布 基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成 基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署 持续集成 为了让程序代码可以自动推送到测试环境基于Docker服务运行…

Django数据库创建存储及管理

一、什么是ORM Django的ORM(Object-Relational Mapping)是Django框架中一个非常重要的组件。ORM可以让开发者以面向对象的方式操作数据库,而不需要直接编写SQL语句。 具体来说,Django ORM提供了以下功能: 模型定义:开发者可以在Django应用中定义Python类来表示数据库表,这些…

机器学习每周挑战——二手车车辆信息交易售价数据

这是数据集的截图 目录 背景描述 数据说明 车型对照&#xff1a; 燃料类型对照&#xff1a; 老规矩&#xff0c;第一步先导入用到的库 第二步&#xff0c;读入数据&#xff1a; 第三步&#xff0c;数据预处理 第四步&#xff1a;对数据的分析 第五步&#xff1a;模型建…

【KTips】在Kotlin中实现一个十分简单的自循环状态机

在平日的编码生活中&#xff0c;你有没有遇到过需要通过状态机来实现的逻辑呢&#xff1f;一个状态的轮转、事件订阅的通讯处理等。 状态机的实现方式千变万化&#xff0c;这里我会为你介绍一个简单的自循环状态机实现。 简单介绍 在开始之前&#xff0c;我先说明一下这个所谓…

网络安全审计

一、什么叫网络安全审计 网络安全审计是按照一定的安全策略&#xff0c;利用记录、系统活动和用户活动等信息&#xff0c;检查、审查和检验操作时间的环境及活动&#xff0c;从而发现系统漏洞、入侵行为或改善系统性能的过程&#xff0c;它是提高系统安全性的重要手段。 系统…

python基础算法题0502

数字反转 无论是字符串反转还是数字反转&#xff0c;其实都一样。 需求 代码 class Solution:def reverse(self, x: int) -> int:if 0 < x < 2 ** 31 - 1:m str(x)[::-1]if int(m)<2**31-1:return int(m)else:return 0if 0 > x > -2 ** 31:y -xn str(y…