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.mzph.cn/news/712546.shtml

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

相关文章

golang goroutine 如何退出?

上一讲说到调度器将maingoroutine推上舞台,为它铺好了道路,开始执行runtime.main函数。这一讲,我们探索maingoroutine以及普通goroutine从执行到退出的整个过程。 //Themaingoroutine. funcmain(){ //gmaingoroutine,不再是g0了 …

Python列表中添加删除元素不走弯路

1.append() 向列表中添加单个元素,一般用于尾部追加 list1 ["香妃", "乾隆", "贾南风", "赵飞燕", "汉武帝"]list1.append("周瑜") print(list1) # [香妃, 乾隆, 贾南风, 赵飞燕, 汉武帝, 周瑜]…

STM32标准库——(14)I2C通信协议、MPU6050简介

1.I2C通信 I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强, 不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间…

计算机网络_2.2物理层下面的传输媒体

2.2物理层下面的传输媒体 一、传输媒体的分类二、导向型传输媒体1、同轴电缆2、双绞线3、光纤(1)光纤通信原理(2)光纤组成(4)多模光纤与单模光纤对比(5)光纤的波长与规格&#xff08…

数据可视化基础与应用-02-基于powerbi实现连锁糕点店数据集的仪表盘制作

总结 本系列是数据可视化基础与应用的第02篇,主要介绍基于powerbi实现一个连锁糕点店数据集的仪表盘制作。 数据集描述 有一个数据集,包含四张工作簿,每个工作簿是一张表,其中可以销售表可以划分为事实表,产品表&am…

Linux时间同步(PPS、PTP、chrony)分析笔记

1 PPS(pulse per second) 1.1 简介 LinuxPPS provides a programming interface (API) to define in the system several PPS sources. PPS means "pulse per second" and a PPS source is just a device which provides a high precision signal each second so t…

每日一题 2673使二叉树所有路径值相等的最小代价

2673. 使二叉树所有路径值相等的最小代价 题目描述: 给你一个整数 n 表示一棵 满二叉树 里面节点的数目,节点编号从 1 到 n 。根节点编号为 1 ,树中每个非叶子节点 i 都有两个孩子,分别是左孩子 2 * i 和右孩子 2 * i 1 。 树…

Java缓存简介

内存访问速度和硬盘访问速度是计算机系统中两个非常重要的性能指标。 内存访问速度:内存是计算机中最快的存储介质,它的访问速度可以达到几纳秒级别。内存中的数据可以直接被CPU访问,因此读写速度非常快。 硬盘访问速度&…

学习和工作的投入产出比(节选)

人工智能统领全文 推荐包含关于投入、产出、过剩、市场关注、案例、结果和避雷等主题的信息: 投入与产出: 投入和产出都有直接和间接两类常见形式。常见的四种组合是:直接投入、直接产出、间接投入、间接产出。 过剩: 过剩是一个重…

力扣SQL50 无效的推文 查询

Problem: 1683. 无效的推文 思路 👨‍🏫 参考 char_length(str):计算 str 的字符长度length(str):计算 str 的字节长度 Code select tweet_id from Tweets where char_length(content) > 15;

C++与 Fluke5500A设备通过GPIB-USB-B通信的经验积累

C与 Fluke5500A设备通过GPIB-USB-B通信的经验积累 以下内容来自:C与 Fluke5500A设备通过GPIB-USB-B通信的经验积累 - JMarcus - 博客园 (cnblogs.com)START 1.需要安装NI-488.2.281,安装好了之后,GPIB-USB-B的驱动就自动安装好了 注意版本…

动态规划(算法竞赛、蓝桥杯)--单调队列滑动窗口与连续子序列的最大和

1、B站视频链接&#xff1a;E11【模板】单调队列 滑动窗口最值_哔哩哔哩_bilibili 题目链接&#xff1a;滑动窗口 /【模板】单调队列 - 洛谷 #include <bits/stdc.h> using namespace std; const int N1000010; int a[N],q[N];//q存的是元素的下标 int main(){int n,k;…

unity学习(41)——创建(create)角色脚本(panel)——UserHandler(收)+CreateClick(发)——创建发包!

1.客户端的程序结构被我精简过&#xff0c;现在去MessageManager.cs中增加一个UserHandler函数&#xff0c;根据收到的包做对应的GameInfo赋值。 2.在Model文件夹下新增一个协议文件UserProtocol&#xff0c;内容很简单。 using System;public class UserProtocol {public co…

金融短信群发平台具有那些特点

金融短信群发平台的特点主要包括以下几个方面&#xff1a; 1.高效性&#xff1a;金融短信群发平台能够快速地发送大量的短信&#xff0c;使得金融信息能够迅速传达给目标客户&#xff0c;保证了信息的及时性和有效性。 2.安全性&#xff1a;金融短信群发平台对于信息的安全性非…

蓝桥杯练习系统(算法训练)ALGO-995 24点

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 24点游戏是一个非常有意思的游戏&#xff0c;很流行&#xff0c;玩法很简单&#xff1a;给你4张牌&#xff0c;每张牌上有数…

【教程】移动互联网时代的APP上架流程和要点

目录 摘要 引言 正文 一、应用商店注册 二、准备APP材料 三、打包上传App 摘要 本文将介绍移动应用程序上架的基本流程和要点&#xff0c;包括应用商店注册、APP材料准备、打包上传App、APP审核以及发布APP的详细步骤。此外&#xff0c;还会提到利用appuploder工具简化i…

Spring Cloud 实战系列之 Zuul 微服务网关搭建及配置

一、创建SpringBoot项目 用mavan搭建也可以。&#xff08;重要的是后面pom里应该引入那些依赖&#xff0c;application.yml怎么配置&#xff09; 由于开始构建项目时选择了Eureka Server&#xff0c;所以pom.xml中不需要手动添加依赖了 首先在启动类SpringcloudApplicatio…

SpringBoot项目连接Redis报错:Connection refused: no further information

今天在使用SpringBoot连接Redis时发生了报错 明明Jedis能够连接成功为什么StringRedisTemplate就不行? 然后在网上找了一下说是关闭防火墙或者修改配置文件但是都不管用 最后发现是Redis在SpringBoot3之后yml的配置方式发生了改变 相较于之前多了一个前缀, 由于我刚开始没有…

项目风险管理的前提是对风险的认知

大家好&#xff0c;我是不会魔法的兔子&#xff0c; 一枚北京执业律师&#xff0c;创建[项目管理者的法小院儿]&#xff0c;持续从法律的角度分享项目管理中的风险问题及预防&#xff0c;让项目管理者能够提早发现与解决项目执行过程中的风险&#xff0c;同时欢迎大家一起交流…

论文解读--Mutual Interference Mitigation in PMCW Automotive Radar

PMCW汽车雷达的相互干扰抑制 摘要 针对相位调制连续波(PMCW)毫米波(mmWave)汽车雷达系统中存在的相互干扰问题进行了研究。对先进驾驶辅助系统(ADAS)的需求日益增长&#xff0c;导致配备在同一频段工作的毫米波雷达系统的车辆激增&#xff0c;导致相互干扰&#xff0c;可能会降…