深入浅出学习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安装成功

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑ip地址设置成什么比较好

随着信息技术的快速发展&#xff0c;IP地址已成为电脑在网络世界中的“身份证”。它不仅是电脑在网络中进行通信的基础&#xff0c;也直接关系到网络连接的稳定性、安全性和效率。然而&#xff0c;面对众多IP地址设置选项&#xff0c;许多用户可能会感到困惑。那么&#xff0c;…

kubernate 基本概念

一 K8S 是什么&#xff1f; K8S 全称&#xff1a;Kubernetes 作用&#xff1a; 用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用程序”的开源系统。 可以理解成 K8S 是负责自动化运维管理多个容器化程序&#xff08;比如 Docker&#xff09;的…

2024年去除视频水印的5种方法

如果你从事电影剪辑或者视频编辑工作&#xff0c;你经常需要从优酷、抖音、TikTok下载各种视频片段……。 通常这些视频带有水印和字幕。一些免费软件如CapCut、canva、Filmora也会给你制作的视频打上水印&#xff0c;这些水印嵌入在视频内部。 2024年去除视频水印的5种方法 …

信息安全技术-分析题【太原理工大学】

没有历年题或明确说明大题会考什么&#xff0c;以下为个人猜测 简答题和选择判断占60&#xff0c;认真看题库和总结&#xff0c;能过d(^_^o) 好像说是加解密这类题会给公式让你直接套&#xff0c;但还是看一下基本原理&#xff0c;要不到时候蒙圈 1.加密算法步骤 图 1 是一个采…

视频降噪算法 Meshflow 介绍

介绍 Meshflow 视频降噪算法来自于 2017 年电子科技大学一篇高质量论文。 该论文提出了一个新的运动模型MeshFlow&#xff0c;它是一个空间平滑的稀疏运动场 (spatially smooth sparse motion field)&#xff0c;其运动矢量 (motion vectors) 仅在网格顶点 (mesh vertexes) 处…

【Linux】yum与vim

文章目录 软件包管理器&#xff1a;yumLinux安装和卸载软件包Linux中的编辑器&#xff1a;vimvim下的底行模式vim下的正常模式vim下的替换模式vim下的视图模式vim下的多线程 软件包管理器&#xff1a;yum yum其实就是一个软件,也可以叫商店 和你手机上的应用商店或app store一…

批量无人值守设备运维如何轻松搞定,设备授权和分组很关键

如今数字化时代&#xff0c;很多企业的一线业务依托无人值守的智能终端设备展开&#xff0c;这类设备的广泛使用可以帮助企业以较小的成本铺开大规模的业务&#xff0c;比如现在随处可见的智能售货机&#xff0c;商场的各类智能互动终端等等。 这类设备整体上可以降低业务开展…

gorm-sharding分表插件升级版

代码地址&#xff1a; GitHub - 137/gorm-sharding: Sharding 是一个高性能的 Gorm 分表中间件。它基于 Conn 层做 SQL 拦截、AST 解析、分表路由、自增主键填充&#xff0c;带来的额外开销极小。对开发者友好、透明&#xff0c;使用上与普通 SQL、Gorm 查询无差别.解决了原生s…

报名 | AIGC技术分享峰会苏州场来啦!

IGC是近年来人工智能技术迅速发展的一个重要领域。从早期的简单字符生成到现在可以撰写复杂文章、生成高清图片甚至编写代码&#xff0c;AIGC技术的发展突飞猛进&#xff0c;不仅在文学创作、艺术设计、游戏开发和软件编程等领域展现出惊人的潜能&#xff0c;也对各行业提供了前…

(ARM-Linux) ORACLE JDK 22 的下载安装及环境变量的配置

目录 获取JDK 安装JDK 配置JAVA环境变量 其他补充&#xff1a;JDK 22的新特征 1. 语法 2. 库 3. 性能 4. 工具 在今年的3月份&#xff0c;ORACLE 更新了的JDK 发行版 JDK 22&#xff0c;作为了一位ORACLE Primavera系列产品的研究者&#xff0c;其实对JDK的迭代完全不感…

神经网络中的归一化

我们今天介绍一下神经网络中的归一化方法~ 之前学到的机器学习中的归一化是将数据缩放到特定范围内&#xff0c;以消除不同特征之间的量纲和取值范围差异。通过将原始数据缩放到一个特定的范围内&#xff0c;比如[0,1]或者[-1,1]&#xff0c;来消除不同特征之间的量纲和取值范围…

Windows环境下VSCode C无法跳转自动补全

前言&#xff1a; 本文记录了自己在配置 Windows环境下 VSCode C开发环境的遇到的问题和解决方法。 参考: vscode c语言没有代码提示_clangd提示不生效-CSDN博客 VSCODE无法跳转_vscode 不能跳转-CSDN博客 vscode c/c环境配置&#xff08;MinGW&#xff09;调用第三官方库…

区块链的跨链交互:从学校间交流看跨链技术

区块链是一种去中心化的分布式账本技术&#xff0c;它通过加密学和共识机制来确保数据的安全性和不可篡改性。每个区块链就像一所独立的学校&#xff0c;有自己的制度、学生和重点专业。它们各自运行&#xff0c;有时在同一领域展开不同的活动。随着区块链技术的不断发展&#…

Java数组的应用---选择排序(Select Sort)

一、需求&#xff1a;选择排序(Select Sort)&#xff0c;进行升序显示 在一组排列中把最大的数取出来放在一个新的列表里&#xff0c;再删去&#xff0c;在取最大的数出来&#xff0c;依次类推直到取到最后一个数字 二、定义一个无序的一维数组&#xff0c;并输出数组 程序运…

flink cdc,读取datetime类型

:flink cdc&#xff0c;读取datetime类型&#xff0c;全都变成了时间戳 Flink CDC读取MySQL的datetime类型时会转换为时间戳的问题&#xff0c;可以通过在Flink CDC任务中添加相应的转换器来解决。具体来说&#xff0c;可以在MySQL数据源的debezium.source.converter配置项中指…

vue 金额组件,输入提示单位:‘千’、‘万’、‘十万’...并用‘,’三个格式化

近期项目中遇到一个需求&#xff0c;金额输入框&#xff0c;输入过程中自动提示‘千’、‘万’、‘十万’、‘百万’......等单位提示&#xff0c;鼠标失去焦点后&#xff0c;并用‘,’三位隔开计数。 例如&#xff1a; 输入&#xff1a;12345.99 失去焦点&#xff1a;12,34…

私域流量优化:如何利用 AIPL 模型洞察客户生命周期价值

在当今这个数字化时代&#xff0c;商业战场的硝烟从未如此浓烈。随着互联网红利的逐渐消退&#xff0c;公域流量的成本水涨船高&#xff0c;企业间对于有限用户资源的争夺已进入白热化阶段。每一次点击、每一个曝光背后&#xff0c;都是企业不得不承担的高昂代价。在此背景下&a…

JavaScript 进阶征途:解锁Function奥秘,深掘Object方法精髓

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f235;Function方法 与 函数式编程&#x1f49d;1 call &#x1f49d…

【MySQL数据库】丨一文详解 JdbcTemplate(Spring中的CRUD)

前言 JdbcTemplate 是 Spring框架 中提供的一个对象&#xff0c;用于简化JDBC操作。它使得数据库操作变得更为简单和方便&#xff0c;大大提高了开发效率。 文章目录 前言为何要使用JdbcTemplate在JdbcTemplate中执行SQL语句的方法大致分为3类&#xff1a;案例代码 JdbcTemplat…

whisper之初步使用记录

文章目录 前言 一、whisper是什么&#xff1f; 二、使用步骤 1.安装 2.python调用 3.识别效果评估 4.一点封装 5.参考链接 总结 前言 随着AI大模型的不断发展&#xff0c;语音识别等周边内容也再次引发关注&#xff0c;通过语音转文字再与大模型交互&#xff0c;从而…