深度学习(四)——torchvision中数据集的使用

深度,学习,torchvision,数据,使用 · 浏览次数 : 132

小编点评

**一、 科研数据集下载链接:** ```python https://pytorch.org/vision/stable/index.html ``` **二、 CIFAR10数据集详解具体网站:** * **CIFAR10 — Torchvision 0.15 documentation**1. **三、 使用transform处理多组图像数据代码示例:** ```python import torchvisiondataset_transform # 定义transform=dataset_transform,使得图像数据类型转换为Compose中处理过后的train_set=torchvision.datasets.CIFAR10(root=\"./dataset\",train=True,transform=dataset_transform,download=True)test_set=torchvision.datasets.CIFAR10(root=\"./dataset\",train=False,transform=dataset_transform,download=True) # 对处理过后的图像进行可视化操作 from torch.utils.tensorboard import SummaryWriterwriter=SummaryWriter(\"p10\") for i in range(10): img,target=test_set[i] writer.add_image(\"test_set\",img,i)writer.close() ``` **四、 其他补充说明:** * 该代码示例使用的是TensorBoard库来可视化图像数据。 * `transform`函数可以应用多种数据变换,例如ToTensor、Normalize等。 * `torchvision.datasets.CIFAR10`类可以用于加载CIFAR10数据集。 * `Dataset.classes`属性可以获取数据集中的标签类别。

正文

一、 科研数据集

下载链接:

https://pytorch.org/vision/stable/index.html

本文中我们使用的是\(CIFAR\)数据集

二、CIFAR10数据集详解

具体网站:

CIFAR10 — Torchvision 0.15 documentation

1. 参数详解

  • torchvision中每个数据集的参数都是大同小异的,这里只介绍CIFAR10数据集

  • 该数据集的数据格式为PIL格式

class torchvision.datasets.CIFAR10(root:str,train:bool=True,transform:Optional[Callable]=None,target_transform:Optional[Callable]=None,download:bool=False)
  • 内置函数:

    • root(string):必须设置,输入数据集下载后存放在电脑中的路径

    • train(bool):True代表创建的一个训练集(train);False代表创建一个测试集(test)。

    • transform:对数据集中的数据进行变换

    • target_transform:对标签(target)数据进行变换

    • download(bool):True的时候会自动从网上下载这个数据集,False的时候则不会下载该数据集。

  • 代码示例:

    • 运行后直接下载数据集

    • 需要注意的是,如果下载速度过慢,则可以在运行后,把弹出的网址单拎出来,放到迅雷等软件上进行下载

import torchvision

#设置训练集
#root:设置为相对路径,会在该.py文件下设置一个名为dataset的文件存放CIFAR10数据
#train: True,数据集为训练集
#download: 下载该数据集
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,download=True)

#设置测试集;train=False
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,download=True)
  • 数据标签查看:

    • 在运行上面的代码下载好数据集后,输入print(test_set[0),并使用一下pycharm的dubug功能,不难发现:

    • 也就是说,数据标签有'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'十类,分别用整数0~9来表示

    • 数据集包含的所有标签也可以用下面的代码打印出来:

print(test_set.classes)
#[Run] [airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
  • 某条数据的PIL Image、标签的获取方法:img,target=test_set[索引]
img,target=test_set[0]
print(img)
print(target,test_set.classes[target])

#[Run]
#<PIL.Image.Image image mode=RGB size=32x32 at 0x1DDF9FCD640>
#3  cat
  • 显示图片:
img.show()

三、使用transform处理多组图像数据

代码示例

  • 首先使用\(Compose\)去定义如何处理PIL图像数据

  • 然后代入\(torchvision.datasets.CIFAR10\)中,处理里面的图像数据

#首先用Compose处理图像数据,可以先转为tensor格式,然后再裁剪等,这里只转tensor格式
import torchvision
dataset_transform=torchvision.transforms.Compose([
    torchvision.transforms.ToTensor()
])

#定义transform=dataset_transform,使得图像数据类型转换为Compose中处理过后的
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transform,download=True)
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transform,download=True)
  • 对处理过后的图像进行可视化操作
from torch.utils.tensorboard import SummaryWriter
writer=SummaryWriter("p10")
for i in range(10): #显示test_set数据集中的前十张图片
    img,target=test_set[i]
    writer.add_image("test_set",img,i)
writer.close()

与深度学习(四)——torchvision中数据集的使用相似的内容:

深度学习(四)——torchvision中数据集的使用

前面的transform只是对单个数据图像的处理,本文着重讲对多个数据图像的处理,并介绍科研中常用数据集的下载方式。

深度学习之PyTorch实战(4)——迁移学习

(这篇博客其实很早之前就写过了,就是自己对当前学习pytorch的一个教程学习做了一个学习笔记,一直未发现,今天整理一下,发出来与前面基础形成连载,方便初学者看,但是可能部分pytorch和torchvision的API接口已经更新了,导致部分代码会产生报错,但是其思想还是可以借鉴的。 因为其中内容

ComfyUI进阶:Comfyroll插件 (四)

ComfyUI进阶:Comfyroll插件 (四)前言:学习ComfyUI是一场持久战,而Comfyroll 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供更加丰富和专业的图像生成与编辑工具。借助这些节点,用户可以在静态图像的精细调整和动态动画的复杂构建方面进行深入探索。C

ComfyUI进阶篇:ControlNet核心节点

前言: ControlNet_aux库包含大量的图片预处理节点,功能丰富,适用于图像分割、边缘检测、姿势检测、深度图处理等多种预处理方式。掌握这些节点的使用是利用ControlNet的关键,本篇文章将帮助您理解和学会使用这些节点。 目录 一、安装方法 二、模型下载 三、Segmentor节点 四、L

深度学习论文翻译解析(二十三):Segment Angthing

论文标题:Segment Angthing 论文作者: Alexander Kirillov Eric Mintun Nikhila Ravi Hanzi Mao... 论文地址:2304.02643 (arxiv.org) 声明:小编翻译论文仅为学习,如有侵权请联系小编删除博文,谢谢! 小编是一个

深度学习论文翻译解析(二十二):Uniformed Students Student-Teacher Anomaly Detection With Discriminative Latent Embbeddings

论文标题:Uniformed Students Student-Teacher Anomaly Detection With Discriminative Latent Embbeddings 论文作者: Paul Bergmann Michael Fauser David Sattlegger C

深度学习项目-MobileNetV2水果识别模型

本项目旨在研究利用深度学习模型进行水果图像分类的方法,具体包括两个主要任务:一是使用卷积神经网络(CNN)模型进行水果图片的分类,二是探索轻量级神经网络模型MobileNetV2在水果图像分类中的应用。

深度学习框架火焰图pprof和CUDA Nsys配置指南

注:如下是在做深度学习框架开发时,用到的火焰图pprof和 CUDA Nsys 配置指南,可能对大家有一些帮助,就此分享。一些是基于飞桨的Docker镜像配置的。 一、环境 & 工具配置 0. 开发机配置 # 1.构建镜像, 记得映射端口,可以多映射几个;记得挂载ssd目录,因为数据都在ssd盘上

【高级RAG技巧】在大模型知识库问答中增强文档分割与表格提取

前言 文档分割是一项具有挑战性的任务,它是任何知识库问答系统的基础。高质量的文档分割结果对于显著提升问答效果至关重要,但是目前大多数开源库的处理能力有限。 这些开源的库或者方法缺点大致可以罗列如下: 只能处理文本,无法提取表格中的内容 缺乏有效的分割策略,要么是一整个文档全部提取,要么是词粒度的获取

深度学习之PyTorch实战(5)——对CrossEntropyLoss损失函数的理解与学习

其实这个笔记起源于一个报错,报错内容也很简单,希望传入一个三维的tensor,但是得到了一个四维。 RuntimeError: only batches of spatial targets supported (3D tensors) but got targets of dimension: 4