当前位置: 首页 > news >正文

2024/9/16 dataloader、tensorboard、transform

一、pytorch两大法宝元素

假设有一个名为pytorch的包

dir():用于打开包,看里面的内容

help():用于查看具体的内容的用处

二、python文件,python控制台和jupyter的使用对比

三、pytorch读取数据

pytorch读取数据主要涉及到两个类:

使用Dataset类读取数据

从pytorch包中引入Dataset类,写一个子类对Dataset进行继承,重写其中方法达到目的

一般会设置数据路径问题,需import os

四、Tensorboard的使用

TensorBoard 是 TensorFlow提供的一组可视化工具

安装tensorboard

1.SummaryWriter类的使用

1.1 add_scalar()方法

def add_scalar(self,tag,  # 图像名scalar_value,  # y轴global_step=None, #  x轴walltime=None,new_style=False,double_precision=False,
):

运行后,出现logs文件夹:

查看该文件:

在终端输入tensorboard --logdir=logs或者tensorboard --logdir PATH

默认生成文件通过6006端口打开,可指定端口打开:tensorboard --logdir=logs --port=6007

点击链接:

注:有时生成文件多了之后,图像出现在一起可能会出现拟合现象,就将所有事件删除后重新生成

1.2 add_image()方法

def add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats="CHW"
):

tag:标题

img_tensor:图片,此处图片只能是torch.tensor,numpy.array或string 不是这些,要转换成这些

global_step:表明是第几张图片

dataformats:图片的通道,高,宽顺序,默认CHW 可自行指定

五、Transform的使用

通过 from torchvision import transforms 引入transforms模块

torchvision是图像处理库,计算机视觉工具包,transforms 集成了随机翻转、旋转、增强对比度、转化为tensor、转化为图像等功能,用于数据增强。(transforms更多的指的是transforms.py文件,其中包含很多类)。

NumPy是一个功能强大的Python库,主要用于对多维数组执行计算,它极大地简化了向量和矩阵的操作处理。

Tensor,即“张量”。实际上跟numpy数组、向量、矩阵的格式基本一样。但是是专门针对GPU来设计的,可以运行在GPU上来加快计算效率。

在PyTorch中,张量Tensor是最基础的运算单位,与NumPy中的NDArray类似,张量表示的是一个多维矩阵。不同的是,PyTorch中的Tensor可以运行在GPU上,而NumPy的NDArray只能运行在CPU上。由于Tensor能在GPU上运行,因此大大加快了运算速度。

在使用 transforms.ToTensor() 进行图片数据转换过程中会对图像的像素值进行正则化,即一般读取的图片像素值都是8 bit 的二进制,那么它的十进制的范围为 [0, 255],而正则化会对每个像素值除以255,也就是把像素值正则化成 [0.0, 1.0]的范围

详见https://www.cnblogs.com/yq-ydky/p/17617289.html

1.使用ToTensor类将图片数据转化为Tensor类型

2.为什么要使用tensor这一数据类型

tensor这一数据类型包含了很多在神经网络中需要用到内容,比如后向,梯度

对于搭建神经网络更为方便

3.将PIL数据转化为Tensor,利用Tensorboard进行显示

4.常用的transform类

Resize只改变图像大小,不改变其数据类型

compose对象是各种类对象的合成体,要注意的列表中的对象要具有相关性,前一对象的输出是后一个对象的输入

5.transform与数据集的结合使用

torchvision中可以找到一些常用数据集,常用模型:

torchvision — Torchvision 0.19 documentation

torchvision.datasets中包含许多数据集,可直接设置参数使用命令下载

例子:CIFAR10

CIFAR10 — Torchvision 0.19 documentation

(1)下载数据:

数据集中的每一个数据都是一个由图片和对应的类别标签索引组成的元组

(2)原始图片为PIL类型,添加一些transform操作:

(3)利用tensorboard对图像进行显示

六、dataloader介绍

参考:torch.utils.data — PyTorch 2.4 documentation

使用dataset获取数据集时,返回的数据集中每一个数据都是一个由图片和标签组成的元组

CIFAR10中的图片维度(3,32,32)

dataloader负责按照想要的方式从数据集中得到数据

(1)将batch设置为4,每页4个,分多页

(2)将batch设置为64,每页64个,分多页,epoch表示遍历完一遍数据

注:指定了数据集会读取该数据集所有数据,batch只是将数据分批次

format()的使用:

Python字符串格式化之使用format()方法_python_脚本之家


http://www.mrgr.cn/news/28767.html

相关文章:

  • Vue开发风格
  • MySQL与Oracle对比及区别
  • Collections.synchronizedList()你真的会用吗?
  • 数字字符串格式化
  • [2024最新] java八股文实用版(附带原理)---java集合篇
  • 【月之暗面kimi-注册/登录安全分析报告】
  • 反向传播(Back Propagation,简称BP)
  • CleanClip vs 传统剪贴板:究竟谁更胜一筹?
  • libidn库下载、编译、示例:实现UTF-8转Punycode、Punycode转UTF-8
  • golang学习笔记22——golang微服务中数据竞争问题及解决方案
  • 中国数据中心服务器CPU行业发展概述
  • Java 之多线程基础
  • neo4j(spring) 使用示例
  • Linux:RPM软件包管理以及yum软件包仓库
  • 用 Python 实现将长 Markdown 文档从二级标题开始拆分
  • 【车载以太网】【SOME/IP】vsomeip代码解析--routing_manager
  • 【课程学习】信号检测与估计II
  • NC 排序
  • 硬件工程师笔试面试——显示器件
  • fiddler抓包03_汉化
  • 基于代理的分布式身份管理方案
  • Linux:软件包管理器 yum和编辑器-vim使用
  • 『功能项目』回调函数处理死亡【54】
  • leetcode-枚举算法
  • Redhat 8/9 缺少 compat-db47
  • SpringBoot开发——统一返回和统一异常处理