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

深入浅出学习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

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安装成功

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全栈开发之路——前端篇(4)watch监视、数据绑定和计算属性

全栈开发一条龙——前端篇 第一篇&#xff1a;框架确定、ide设置与项目创建 第二篇&#xff1a;介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇&#xff1a;setup语法&#xff0c;设置响应式数据。 辅助文档&#xff1a;HTML标签大全&#xff08;实时更新&#xff…

【JVM】从硬件层面和应用层面的有序性和可见性,到Java的volatile和synchronized

Java的关键字volatile保证了有序性和可见性&#xff0c;这里我试着从底层开始讲一下有序性和可见性。 一&#xff0c;一致性 数据如果同时被两个cpu读取了&#xff0c;如何保证数据的一致性&#xff1f;或者换句话说&#xff0c;cpu1改了数据&#xff0c;cpu2的数据就成了无效…

esp32-cam 1. 出厂固件编译与测试

0. 环境 - ubuntu18 - esp32-cam - usb转ttl ch340 硬件连接 esp32-camch340板子U0RTXDU0TRXDGNDGND5V5V 1. 安装依赖 sudo apt-get install vim sudo apt install git sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial p…

【Linux】awk命令学习

最近用的比较多&#xff0c;学习总结一下。 文档地址&#xff1a;https://www.gnu.org/software/gawk/manual/gawk.html 一、awk介绍二、语句结构1.条件控制语句1&#xff09;if2&#xff09;for3&#xff09;while4&#xff09;break&continue&next&exit 2.比较运…

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题 2024/5/3 9:33 缘起&#xff1a;因为工作需要&#xff0c;编译服务器上都会安装Ubuntu20.04。 但是因为WINDOWS强悍的生态系统&#xff0c;偶尔还是有必须要用WINDOWS的时候&#xff0c;于是也安装了WIN10。 双系…

软件应用开发安全设计指南

1.1 应用系统架构安全设计要求 设计时要充分考虑到系统架构的稳固性、可维护性和可扩展性&#xff0c;以确保系统在面对各种安全威胁时能够稳定运行。 在设计系统架构时&#xff0c;要充分考虑各种安全威胁&#xff0c;如DDoS攻击、SQL注入、跨站脚本攻击&#xff08;XSS&…

2022 亚马逊云科技中国峰会,对话开发者论坛

目录 前言 最近整理资料发现还有一些前 2 年的内容没发出来&#xff0c;故补发记录&#xff0c;每年都有新的感悟。 开发者论坛 1. 你认为什么是开发者社区&#xff0c;如何定义一个成功的开发者社区&#xff1f; 我认为可以把开发者社区看成一个 “产品” 来对待&#xff…

SpringBoot @DS注解 和 DynamicDataSource自定义实现多数据源的2种实现方式

前言 在实际的项目中&#xff0c;我们经常会遇到需要操作多个数据源的情况&#xff0c;SpringBoot为我们提供了多种实现多数据源的方式。本文将介绍两种常见的方式&#xff1a;使用DS注解实现多数据源的切换以及使用DynamicDataSource自定义实现多数据源的切换。 我们将分别介…

【Unity】在空物体上实现 IPointerClickHandler 不起作用

感谢Unity接口IPointerClickHandler使用说明_哔哩哔哩_bilibiliUnity接口IPointerClickHandler使用说明, 视频播放量 197、弹幕量 0、点赞数 3、投硬币枚数 2、收藏人数 2、转发人数 0, 视频作者 游戏创作大陆, 作者简介 &#xff0c;相关视频&#xff1a;在Unity多场景同时编辑…

扩散模型(Diffusion Model)概述

扩散模型&#xff08;Diffusion Model&#xff09;是图像生成模型的一种。有别于此前 AI 领域大名鼎鼎的 GAN、VAE 等算法&#xff0c;扩散模型另辟蹊径&#xff0c;其主要思想是一种先对图像增加噪声&#xff0c;再逐步去噪的过程&#xff0c;其中如何去噪还原图像是算法的核心…

移动机器人系统与技术:自动驾驶、移动机器人、旋翼无人机

这本书全面介绍了机器人车辆的技术。它介绍了道路上自动驾驶汽车所需的概念。此外&#xff0c;读者可以在六足机器人的构造、编程和控制方面获得宝贵的知识。 这本书还介绍了几种不同类型旋翼无人机的控制器和空气动力学。它包括各种旋翼推进飞行器在不同空气动力学环境下的模…

备考2024年小学生古诗文大会:吃透10道历年真题和知识点(持续)

根据往年的安排&#xff0c;2024年上海市小学生古诗文大会预计还有一个月就将启动。我们继续来随机看10道往年的上海小学生古诗文大会真题&#xff0c;这些题目来自我去重、合并后的1700在线题库&#xff0c;每道题我都提供了参考答案和独家解析。 根据往期的经验&#xff0c;只…

pg数据库学习知识要点分析-1

知识要点1 对象标识OID 在PostgreSQL内部&#xff0c;所有的数据库对象都通过相应的对象标识符&#xff08;object identifier&#xff0c;oid&#xff09;进行管理&#xff0c;这些标识符是无符号的4字节整型。数据库对象与相应oid 之间的关系存储在对应的系统目录中&#xf…

如何使用 Node.js 开发一个文件上传功能?

在 Node.js 中实现文件上传功能可以通过多种方式完成&#xff0c;但其中最常用的方法之一是使用 Express 框架和 Multer 中间件。Express 是一个流行的 Node.js Web 框架&#xff0c;而 Multer 是一个用于处理文件上传的中间件。 步骤 1: 准备工作 首先&#xff0c;确保你已经…

基于Springboot的旅游管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的旅游管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

数字旅游以科技创新为核心竞争力:推动旅游服务的智能化、高效化,满足游客日益增长的旅游需求

一、引言 随着科技的飞速发展&#xff0c;数字旅游作为旅游业与信息技术结合的产物&#xff0c;正以其独特的魅力改变着传统旅游业的格局。科技创新作为数字旅游的核心竞争力&#xff0c;不仅推动了旅游服务的智能化、高效化&#xff0c;更满足了游客日益增长的旅游需求。本文…

HIVE数据导出

HIVE数据导出 1.INSERT OVERWRITE LOCAL DIRECTORY "路径" SELECT 查询语句; INSERT OVERWRITE LOCAL DIRECTORY "/usr/local/soft/hive-3.1.2/data/output" select * from learn2.partition_student6; 导出数据时 通过执行MapReduce任务导出到本地文件系统…

Python安装win32api

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…

【云原生】Docker 实践(二):什么是 Docker 的镜像

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

【neteq】tgcall的调用

G:\CDN\P2P-DEV\Libraries\tg_owt\src\call\call.cc基本是按照原生webrtc的来的:G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\group\GroupInstanceCustomImpl.cpptg对neteq的使用 worker 线程创建call Call的config需要neteqfactory Call::CreateAu…