PyTorch深度学习快速入门

PyTorch深度学习快速入门

  • 1.PyTorch环境配置及安装
  • 2.python编辑器的选择、安装、配置(pycharm、JupyTer安装)
  • 3.为什么torch.cuda.is_available()返回false
  • 4.python学习中两大法宝函数(也可用在pytorch)
  • 5.pycharm和jupyter(究bi特)使用及对比
  • 6.pytorch加载数据初认识
  • 7.dataset类代码实战
  • 8.TensorBoard的使用(一)
  • 9.TensorBoard的使用(二)
  • 10.Transforms的使用(一)
  • 11.Transforms的使用(二)
  • 12.常见的Transforms(一)
  • 13.常见的Transforms(二)
  • 14.torchvision中的数据集的使用
  • 15.DataLoader的使用

1.PyTorch环境配置及安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://repo.anaconda.com/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在开始菜单打开Anaconda prompt
在命令行窗口看见base就是安装成功
在这里插入图片描述
在这里插入图片描述
我们要检查显卡的驱动是否正确安装
在这里插入图片描述
看到GPU正常显示型号,则显卡驱动已经正确安装了
在这里插入图片描述
在正确安装pytorch之前
我们要学会如何正确管理环境
因为我们之后在不同的项目、代码需要的环境是不一样的
有的代码需要pytorch0.4、有的需要1.0
conda create -n pytorch python=3.6
在这里插入图片描述
在这里插入图片描述

n表示name的意思,pytorch就是这个环境的名字
python=3表示要安装的包
在这里插入图片描述
在这里插入图片描述
conda activate pytorch用来激活这个环境
左边括号里面的就是环境的名称
在这里插入图片描述

pip list用来查看环境中有哪些工具包
在这里插入图片描述
但其中没有我们需要的pytorch
下面我们开始安装pytorch

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们需要知道自己GPU的型号

在这里插入图片描述
在这里插入图片描述
没有显卡 CUDA选择None

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

conda9.2以上要确保我们的驱动版本大于396.26
我们要先查询一下自己的驱动版本nvidia-smi
在这里插入图片描述

在这里插入图片描述
conda install pytorch torchvision cudatoolkit=9.2 -c pytorch -c defaults -c numba/label/dev

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

使用python
import torch
观察pytorch是否安装成功
在这里插入图片描述

使用torch.cuda.is_available()这个命令观察是否可以使用GPU
在这里插入图片描述
显示false是因为cuda下错版本了,要与自己的电脑对应起来
比如我的
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

在这里插入图片描述

3060最低要11.1的cuda

2.python编辑器的选择、安装、配置(pycharm、JupyTer安装)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择地址和环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面检测一下pycharm是否成功导入了conda的运行环境
torch.cuda.is_available()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
jupyter是默认安装在外面的base环境中的
但我们的base环境是没有安装pytorch的
所以这个jupyter无法使用pytorch
我们可以在base环境中安装pytorch或者在pytorch环境中安装jupyter
我们使用第二种方法
先进入pytorch环境
conda activate pytorch
在这里插入图片描述
我的pytorch环境中没有
在这里插入图片描述

使用conda install nb_conda安装
在这里插入图片描述
在这里插入图片描述

安装完成后输入jupyter notebook
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
http://localhost:8888/?token=f0d9cb3f4543dceeb4737d957381b4c3ab37070ce474b819

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
点击shift+回车运行代码块
torch.cuda.is_available()

如果是中文用户名可能会运行不了
在环境变量下做如下修改
在这里插入图片描述

%systemroot%\TEMP
在这里插入图片描述
%USERPROFILE%\AppData\Local\Temp

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

3.为什么torch.cuda.is_available()返回false

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

4.python学习中两大法宝函数(也可用在pytorch)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出只有一行的,可以点击此刻页面最左侧第2列第一个按钮“Soft-warp”

在这里插入图片描述
查看torch.cuda
我们可以看见之前用的is.available
在这里插入图片描述
在这里插入图片描述
有_表示它是一个函数
在这里插入图片描述

5.pycharm和jupyter(究bi特)使用及对比

首先是pycharm
在这里插入图片描述
在这里插入图片描述
如何确定这个文件使用的是我们的pytorch的cuda环境呢
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建一个python文件
在这里插入图片描述
如何运行这个文件
我们要添加相应的python解释器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击确定就OK了

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

我们也可以直接在python控制台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在里面创建一个新的文件
先选择相应的环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

6.pytorch加载数据初认识

在这里插入图片描述
https://pan.baidu.com/s/1jZoTmoFzaTLWh4lKBHVbEA 密码: 5suq
可以下载一下数据集
在这里插入图片描述
这个数据集分为train(训练数据集)和val(验证数据集)

下面是train
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这是一个识别蚂蚁和蜜蜂对他进行二分类的一个数据集
其中ants和bees这两个文件的名称就是label

还有其他的形式
在这里插入图片描述
告诉我们训练的图片是什么样子
在这里插入图片描述
告诉我们训练的label是什么样子
在这里插入图片描述
在这里插入图片描述

或者我们也可以将label直接写在图片名称上面

下面说明如何使用dataset类
在这里插入图片描述
或者

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

7.dataset类代码实战

在这里插入图片描述

使用控制台进行一个调试
在这里插入图片描述
在这里插入图片描述
将数据集放到项目中,并且重命名为dataset
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们要获取图片的地址
根据def getitem(self, idx):中的idx这个索引去获取
先去获取所有图片地址的一个列表
使用OS去获取
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
上面我们就是获得了所有图片的地址

下面我们要获取每一个图片
在这里插入图片描述

下面考虑这个数据有多长
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果我们想要获取蜜蜂的数据集
在这里插入图片描述
我们训练数据集就是这两个数据集的一个集合
在这里插入图片描述如果我们将数据集进行另外一种形式的表达
在这里插入图片描述
每一张图片对应的label

在这里插入图片描述

8.TensorBoard的使用(一)

在这里插入图片描述
tranform可以我们的图像统一到同一个尺寸
或者对图像中的每一个数据进行一个类的转换

在这里插入图片描述
我们一般想知道我们的训练过程中的loss是如何变化的
通过这个loss知道我们的训练过程是否安装我们预想的变化
我们也可以从相应的loss中去看一下我们选择什么样的模型

在这里插入图片描述
上面这个图就是在外面的2974步输入的图像

这个TensorBoard可以帮助我们探究一些模型在不同的阶段是如何输出的

在这里插入图片描述
首先打开项目文件夹,设置环境
在这里插入图片描述

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

查看如何使用
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
tag就是图表的title
在这里插入图片描述
scalar_value是我们对应的数值,y轴

global_step是我们训练到多少步,x轴

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
我们没有还没有安装tensorboard这个包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果在一台服务器上有好几个人训练
可能端口会冲突
我们可以指定一下这个端口
tensorboard --logdir=logs
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
write写入一个新的事件当中
其实也进入了上一个事件当中
就会出现上面的情况

第一种方法
我们可以将对应的logs下面的文件全部删除
在这里插入图片描述
在这里插入图片描述

第二种方法
在这里插入图片描述

9.TensorBoard的使用(二)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
其中的img_tensor要么是torch_tensor型,要么是numpy.array型。。。
在这里插入图片描述
在这里插入图片描述
我们这边的图片类型是不满足要求的

我们安装一下opencv
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
转换为numpy型

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

在这里插入图片描述

在这里插入图片描述

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

10.Transforms的使用(一)

在这里插入图片描述
transforms主要用来对图片进行一些变换
在这里插入图片描述
在这里插入图片描述
左边的structure可以看它的结构
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们上面就是将img类型的图片转换为我们tensor类型的一个图片
在这里插入图片描述
在这里插入图片描述

11.Transforms的使用(二)

我们为什么需要tensor这个数据类型
在这里插入图片描述
tensor包装了我们神经网络所需要的一些参数
我们在神经网络中一般先把数据转化为tensor型,然后进行一些训练
在这里插入图片描述

在这里插入图片描述
我们上面学习了PIL Image类型的读取
那么如何读取numpy类型的呢
最常用的就是使用opencv

我们安装一下OpenCV

pip install opencv-python( conda install py-opencv)

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

12.常见的Transforms(一)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
compose是将图片进行一个中心的裁剪然后转换为tensor
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

_ _ cal l_ _ 可以直接调用

在这里插入图片描述

在这里插入图片描述
输入必须是一个PIL Image或者numpy类型转换为一个tensor类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
归一化
输入必须是一个tensor类型
用平均值和标准差对张量图像进行归一化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入的img_tensor有三个通道,人为设置均值和标准差都是0.5,
然后利用公式算的输出值img_norm

在这里插入图片描述
下面就是我们归一化后的一个结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一般图像多少RGB,三通道

在这里插入图片描述

13.常见的Transforms(二)

在这里插入图片描述

输入是PIL Image类型
在这里插入图片描述
在这里插入图片描述
尺寸由原来的3200 * 3200 变为 512 * 512
输出的是PIL Image类型
如果我们想要在tensorboard进行显示的话
我们要将img_resize变为totensor的一个数据类型
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当你对一个图像应用trans_compose变换时,它首先会使用trans_resize_2进行尺寸调整,然后使用trans_totensor将PIL图像转换为PyTorch的Tensor。

这个参数是个列表
其实就是将resize变换和totensor合并了
所以列表两个参数代表这两个过程合并。

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

下面我们看另外一个方法
随机裁剪
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.torchvision中的数据集的使用

介绍如何将数据集和我们的transforms结合在一起
在科研当中一些标准的数据集如何去下载、组织、查看、使用
在这里插入图片描述
下面是官网提供的数据集
在这里插入图片描述

比如其中的CIFAR10数据集一般用于物体识别
在这里插入图片描述

root表示数据集在什么位置
train为true的话表示为训练集、false表示为测试集
transform表示我们想对训练的数据集进行一个什么样的变化
target_transform表示对target进行一个transform
download如果为true的话,会从网上自动给我们下载这个数据集

在这里插入图片描述
torchvision.models中会提供一些预训练好的神经网络模块
在这里插入图片描述

介绍如何将数据集和我们的transforms结合在一起

在这里插入图片描述
这里会在我们的文件夹下创建dataset,并且下载CIFR10数据集到其中
在这里插入图片描述
在这里插入图片描述
前面是我们的输入图片
后面是我们的target类别,这里将我们的真实类别表示为一个数字3
如果target为0,就是airplane
在这里插入图片描述

在这里插入图片描述

如果我们想要看一下这个图片
在这里插入图片描述
在这里插入图片描述

下面介绍一下CIFAR10这个数据集
6万张32 * 32像素的彩色图片,且分为10个类别
5w训练,1w测试
在这里插入图片描述
下面和我们的transform进行联动
因为我们的原始图片是PIL Image
如果要给我们的pytorch进行使用,需要转为tensor数据类型
这里我们就使用transform

在这里插入图片描述
这里就是一个tensor数据类型
我们也可以使用我们的tensorboard进行一个显示
比如我们想显示测试数据集中的前10张图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们下载数据集的时候,可以直接在迅雷上使用URL链接进行下载
在这里插入图片描述
在这里插入图片描述

15.DataLoader的使用

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

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

相关文章

论文设计任务书学习文档|基于Vue.js的库存管理系统的设计与实现

文章目录 论文(设计)题目:基于Vue.js的库存管理系统的设计与实现1、论文(设计)的主要任务及目标2、论文(设计)的主要内容3、论文(设计)的基本要求4、进度安排论文(设计)题目:基于Vue.js的库存管理系统的设计与实现 1、论文(设计)的主要任务及目标 基于Vue.js的…

Android Shadow插件化框架分析与集成(一)

一、shadow源码导入及分析 1、下载项目源码 2、导入到Android studio 3、设置jdk及sdk版本 包/应用描述类型sample-constant公共字符串常量libsample-host宿主应用applicationsample-host-lib宿主应用依赖包libsample-manager是插件管理器的动态实现,主要负责加载插件和安装…

【C++】用文件流的put和get成员函数读写文件

题目 编写一个mycopy程序,实现文件复制的功能。用法是在控制台输入: mycooy 源文件名 目标文件名 参数介绍 m a i n main main 函数的参数有两个,一个int类型参数和一个指针数组。 a r g c argc argc 表示参数的个数。参数为void时 a r g …

跨区域复制建筑UI输入框脚本迷你世界

--复制区域文件 --设置坐标起点,终点 --创建区域 --获取坐标id,data --星空露珠工作室制作 local pos1{x-16,y7,z28} local pos2{x28,y44,z-9} local block{num0} local str{} local str0{} local num0 local count0 local ui6 --几个输入框 local romath.random(…

redis-RedisTemplate.opsForGeo 的geo地理位置及实现附近的人的功能

redis内部使用的是 zset 数据结构存储,如下 import cn.huawei.VideoApplication; import cn.huawei.domain.Jingqu; import cn.huawei.service.JingquService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired…

Typora快捷键设置详细教程(内附每个步骤详细截图)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。 🎈 本文专栏:本文…

leetcode:860.柠檬水找零

题意:按照支付顺序,进行支付,能够正确找零。 解题思路:贪心策略:针对支付20的客人,优先选择消耗10而不是消耗5,因为5可以用来找零10或20. 代码实现:有三种情况(代表三种…

蓝桥杯-灌溉

参考了大佬的解题思路&#xff0c;先遍历一次花园&#xff0c;找到所有的水源坐标&#xff0c;把它们存入 “水源坐标清单” 数组内&#xff0c;再读取数组里的水源坐标进行扩散。 #include <iostream> using namespace std; int main() {int n,m,t,r,c,k,ans0,list_i0;…

“内容+科技” 2023爱奇艺拿稳了“高质量增长”指南

“无论影视行业还是互联网行业&#xff0c;最难的时候应该是过去了&#xff0c;接下来我们要高质量增长。” 2023年5月10日&#xff0c;爱奇艺创始人、CEO龚宇在爱奇艺世界大会上给出了这样的判断。大半年之后&#xff0c;爱奇艺公布的2023年全年财报&#xff0c;最终诠释了高…

新闻网站封锁AI爬虫 AI与新闻媒体博弈继续

随着ChatGPT等新兴AI模型的兴起&#xff0c;它们所依赖的网络爬虫正面临来自全球主流新闻网站的大规模封锁。Richard Fletcher博士团队对十个国家主流新闻网站的统计发现&#xff0c;到2023年底&#xff0c;48%的网站屏蔽了OpenAI的爬虫&#xff0c;24%屏蔽了Google的爬虫。那么…

信号系统之快速傅里叶变换

1 使用复数DFT的实数DFT 本文的主题&#xff0c;如何使用 FFT 计算真正的 DFT&#xff1f; 由于 FFT 是一种用于计算复数 DFT 的算法&#xff0c;因此了解如何将实数 DFT 数据输入和输出复数 DFT 格式非常重要。图 12-1 比较了实数 DFT 和复数 DFT 存储数据的方式。实数 DFT …

深度伪造,让网络钓鱼更加难以辨别

网络钓鱼一直是安全领域的一个突出话题&#xff0c;尽管这类诈骗形式已经存在了几十年&#xff0c;依旧是欺诈攻击或渗透组织的最有效方法之一。诈骗分子基于社会工程原理&#xff0c;通过邮件、网站以及电话、短信和社交媒体&#xff0c;利用人性&#xff08;如冲动、不满、好…

【Leetcode】938. 二叉搜索树的范围和

文章目录 题目思路代码结论 题目 题目链接 给定二叉搜索树的根结点 root&#xff0c;返回值位于范围 [low, high] 之间的所有结点的值的和。 示例 1&#xff1a; 输入&#xff1a;root [10,5,15,3,7,null,18], low 7, high 15 输出&#xff1a;32 示例 2&#xff1a; 输入…

Spring的优点

1.方便解耦&#xff0c;简化开发 Spring就是一个容器&#xff0c;可以将所有对象创建和关系维护交给Spring管理。 2.AOP编程支持 面向切面编程&#xff0c;方便实现程序进行权限拦截&#xff0c;运行监控等功能。 3.声明式事务的支持 通过配置完成事务的管理&#xff0c;…

kotlin单例模式,4年小Android的心路历程

一、Java基础 我知道大家一定有很久都没有注意到这个点了&#xff0c;平时的工作应该也很少涉及到这些底层知识吧&#xff0c;但是这些东西很重要。如果是想要跳槽加薪或者是应对即将到来的面试&#xff0c;这些都是不可忽视的知识。 在这一点里&#xff0c;需要重视的点有&am…

【ArcGIS】基本概念-空间参考与变换

ArcGIS基本概念-空间参考与变换 1 空间参考与地图投影1.1 空间参考1.2 大地坐标系&#xff08;地理坐标系&#xff09;1.3 投影坐标系总结 2 投影变换预处理2.1 定义投影2.2 转换自定义地理&#xff08;坐标&#xff09;变换2.3 转换坐标记法 3 投影变换3.1 矢量数据的投影变换…

零基础学编程,中文编程工具之进度标尺构件的编程用法

零基础学编程&#xff0c;中文编程工具之进度标尺构件的编程用法 一、前言 今天给大家分享的中文编程开发语言工具 进度条构件的用法。 编程入门视频教程链接 https://edu.csdn.net/course/detail/39036 编程工具及实例源码文件下载可以点击最下方官网卡片——软件下载——…

基于深度学习的故障诊断入门学习路线—课程目录介绍

1、基于深度学习的故障诊断入门学习路线—课程目录介绍 2、口碑与评价&#xff1a; 2.1 来自某985硕士研究生 2.2 阳阳同学 2.3 小杰同学 2.4 2024.02.25直播课 3、欢迎大家跟着诊断之家老哥一起学习

CentOS安装GUI图形界面

CentOS安装图形界面 CentOS minimal环境安装图形界面。 列出所有可用的Environment Groups yum group list yum groupinfo "GNOME Desktop"选择GNOME Desktop软件包组进行安装 yum groupinstall -y GNOME Desktop1 如果要通过GUI配置网络需要安装Server with GU…

k8s-helm部署应用 19

Helm部署nfs-client-provisioner&#xff08;存储类&#xff09;&#xff1a; 预先配置好外部的NFS服务器 部署 Helm部署nginx-ingress应用&#xff1a; 添加下载ingress 拉取 解开并修改 部署 测试 回收 helm部署metrics-server&#xff1a; 清除之前的metrics部署 下载…