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

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.kler.cn/news/308176.html

相关文章:

  • 三十八、Go-redis快速入门
  • Celery的使用
  • C语言-结构体-详解
  • 阿里云 Quick BI使用介绍
  • 【系统架构设计师-2014年真题】案例分析-答案及详解
  • HTTPX 与 AIOHTTP 与 Requests:选择哪个?
  • 【个人博客hexo版】hexo安装时会出现的一些问题
  • 【Qt笔记】QToolBox控件详解
  • STL相关简介
  • TeamTalk梳理概括
  • JDBC注册驱动及获取连接
  • 【MATLAB GUI 设计第一篇 】
  • packer-fuzzer使用
  • 从0-1 用AI做一个赚钱的小红书账号(不是广告不是广告)
  • 32.递归、搜索、回溯之floodfill算法
  • 【D3.js in Action 3 精译_023】3.3 使用 D3 将数据绑定到 DOM 元素
  • 掌握这几个酱酒特点术语,聊天更显内行
  • 17、电科院FTU检测标准学习笔记-录波性能
  • GeoPandas在地理空间数据分析中的应用
  • ElasticSearch-2-核心语法集群高可用实战-Week2
  • 二叉树总结篇(2)
  • Imagen:重塑图像生成领域的革命性突破
  • websocket 和sip 在协议层面有哪些区别,为什么要各自这样设置协议
  • 鸿蒙开发笔记_电商严选02_登录页面跳转到我的页面、并传值
  • Google 工程师开始用Rust 语言开发 Android 固件
  • 简单了解Maven与安装
  • 数组与贪心算法——649、678、420 数字与贪心 343(3中1难)
  • 【算法】差分思想:强大的算法技巧
  • Sybase「退役」在即,某公共卫生机构如何实现 SAP Sybase 到 PostgreSQL 的持续、无缝数据迁移?
  • MySQL日志binlog和redo log区别