Pytorch的 Dataset 的使用

news2024/11/20 2:39:34
此案例教我们加载并处理TorchVision的FashionMNIST Dataset。
  • root 目录是 train/test data 存储的地方

  • download=True 如果root目录没有,则从网上下载

  • transform and target_transform specify the feature and label transformations

import torch
from torch.utils.data import Dataset
from torchvision import datasets
from torchvision.transforms import ToTensor
import matplotlib.pyplot as plt


training_data = datasets.FashionMNIST(
    root="data",
    train=True,
    download=True,
    transform=ToTensor()
)

test_data = datasets.FashionMNIST(
    root="data",
    train=False,
    download=True,
    transform=ToTensor()
)

运行得到的结果是这样的:

 遍历并可视化数据集

给数据集手动加上序号sample_idx,并用matplotlib进行绘制:

labels_map = {
    0: "T-Shirt",
    1: "Trouser",
    2: "Pullover",
    3: "Dress",
    4: "Coat",
    5: "Sandal",
    6: "Shirt",
    7: "Sneaker",
    8: "Bag",
    9: "Ankle Boot",
}
figure = plt.figure(figsize=(8, 8))
cols, rows = 3, 3
for i in range(1, cols * rows + 1):
    sample_idx = torch.randint(len(training_data), size=(1,)).item()
    img, label = training_data[sample_idx]
    figure.add_subplot(rows, cols, i)
    plt.title(labels_map[label])
    plt.axis("off")
    plt.imshow(img.squeeze(), cmap="gray")
plt.show()

traning_data

torch.randint(len(training_data), size=(1,)).item()

为我的文件自定义一个Dataset

一个自定义的Dataset必须有三个函数:__init__, __len__, and __getitem__

图片存储在img_dir

import os
import pandas as pd
from torchvision.io import read_image

class CustomImageDataset(Dataset):
    def __init__(self, annotations_file, img_dir, transform=None, target_transform=None):
        self.img_labels = pd.read_csv(annotations_file)
        self.img_dir = img_dir
        self.transform = transform
        self.target_transform = target_transform

    def __len__(self):
        return len(self.img_labels)

    def __getitem__(self, idx):
        img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])
        image = read_image(img_path)
        label = self.img_labels.iloc[idx, 1]
        if self.transform:
            image = self.transform(image)
        if self.target_transform:
            label = self.target_transform(label)
        return image, label

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

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

相关文章

第十五讲:神州交换机端口安全配置

知识点: 开启端口安全模式;设置端口最大安全数;端口绑定MAC地址;违规处理;锁定安全端口;MAC地址与IP的绑定;端口镜像。 实验拓扑如下图所示 PC机 IP地址 掩码 MAC地址 端口 PC1 192.168.…

Windows10安装ubuntu(WSL2,可直接调用Win10程序) —2022年笔记

算是wsl2的使用总结。 一。启动win10虚拟机模块 1. 打开控制面板(或开始->运行: control) 2. 点击最左边的 “启用或关闭windows功能”,会弹出模块勾选界面 3. 勾上 Hyper-V、适用于Linux的Windows子系统、虚拟机平台 4. 点击确定按钮即开…

【微服务】Nacos 注册中心的设计原理

目录 一、前言 二、数据模型 三、数据一致性 四、负载均衡 五、健康检查 六、性能与容量 七、易用性 八、集群扩展性 九、用户扩展性 十、结尾 💖 Spring家族及微服务系列文章 一、前言 服务发现是⼀个古老的话题,当应用开始脱离单机运行和访…

Mysql查询性能优化

Mysql查询性能优化0.前言1.为什么查询速度会慢2. 慢查询基础:优化数据访问2.1 是否向数据库请求了不需要的数据2.2 MYSQL是否在扫描额外的记录响应时间扫描的行数和返回的行数3. 重构查询方式3.1 一个复杂查询还是多个简单查询3.2 切分查询3.3 分解关联查询0.前言 …

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块

熟悉Taier的小伙伴们应该都知道,在11月7日发布的Taier1.3新版本中,我们融合了「DataSourceX 模块」。这是十分重要的一个变化,移除Taier外部插件依赖,新增数据源插件相关特性,支持后续Taier对接更多的RDBMS类型的SQL任…

小鹅通六周年:新知识服务时代,做好企业的“共享CTO”

2022年,产业数字化汹涌而来,驱动企业变革转型的同时,知识也以新的形式出现在各行各业。人人表达和传递知识,知识服务开始进入“下半场”。 如何应用数字化产品满足个人和组织的知识表达需求?作为知识产品与用户服务的…

HashMap的结构,1.7和1.8有哪些区别

一、真实面试题之:Hashmap的结构,1.7和1.8有哪些区别 不同点: (1)JDK1.7用的是头插法,而JDK1.8及之后使用的都是尾插法,那么他们为什么要这样做呢?因为JDK1.7是用单链表进行的纵向…

【开源项目】单点登录框架XXL-SSO源码解析

单点登录框架XXL-SSO源码解析 项目介绍 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有"轻量级、分布式、跨域、CookieToken均支持、WebAPP均支持"等特性。现已开放源代码,开箱即用。 项目地址 https://g…

GRAPH ATTENTION NETWORKS 论文/GAT学习笔记

背景 目标:适用不同结构的图的模型 图卷积 基于谱的方法 : 这些方法学习得到的filters基于拉普拉斯特征基,而拉普拉斯特征基又基于图结构,所以在特定结构上训练的模型不能直接应用到具有不同结构的图。代表:GCN 不基…

分布式系统下的认证与授权

在软件系统设计中,如何让应用能够在各种环境中安全高效的访问是个复杂的问题,这个问题的背后是一系列软件设计时需要考虑的架构安全问题:架构安全性 | 凤凰架构 认证:系统如何识别合法用户,也就是解决 你是谁 的问题&…

2022年全球气候金融产品研究报告

第一章 全球气候金融概述 气候变化既是环境问题也是发展问题,需要大量气候资金的投入,金融作为推动经济发展的核心要素,在应对天气变化中能够发挥重要作用。气候金融是与应对气候变化相关的创新金融,是利用多渠道资金来源、运用多…

redhat9安装卸载mysql

文章目录一.仓库安装1.1、下载rpm包1.2、挂载1.3、安装mysql1.4、启动mysql服务1.5、查看临时密码1.6、登录mysql二.本地安装2.1、复制链接2.2、下载解压2.3、安装需要的包2.4、启动服务2.5、登录mysql三.容器安装3.1、安装docker3.2、run镜像3.3、登录mysql四.源码安装4.1、复…

STM32MP157驱动开发——多点电容触摸屏驱动

STM32MP157驱动开发——多点电容触摸屏驱动一、简介二、电容触摸屏驱动框架简介多点触摸(MT)协议详解三、驱动开发1.添加 FT5426 设备节点2.FT5426 节点配置3.驱动编写4.运行测试5.将驱动添加到内核中1)将驱动文件放到合适的位置2)修改Makefile6.tslib 移…

Xillinx的设计约束阅读整理

《适用于FPGA和SOC的UlteraFast设计方法指南》(UG949) 《Vivado Design Suite 用户指南:设计分析与收敛技巧》(UG906) 《Vivado Design Suite 用户指南:使用约束》(UG903) 《Vivado Design Suite Tcl 命令参考指南》(UG835) 约束文…

【java基础】关于线程的一些基础知识点

1.线程的概念: 在java的应用中,线程更多情况下指的是Thread,更精细一点,执行线程就是执行Thread实体下面的run方法,java通过cpu调试,交替进行这些thread,就达到了共同进行这种效果;…

【尚硅谷】SpringBoot2核心技术-1-基础入门

【尚硅谷】SpringBoot2核心技术-1-基础入门一、Spring与SpringBoot1、Spring能做什么1.1、Spring的能力1.2、Spring的生态【没写完】二、SpringBoot2入门1、系统要求1.1、maven设置2、HelloWorld2.1、创建maven工程2.2、引入依赖2.3、创建主程序2.4、编写业务2.5、测试2.6、简化…

DM8开发技能

DM8开发技能 基础学习笔记005 文章目录DM8开发技能1、DMSQL程序设计1.1 概念1.2 数据类型1.3 程序定义1.3.1 存储过程1.3.2 存储函数1.3.3 客户端DMSQL程序1.3.4 参数1.3.5 控制结构(1)顺序结构(2)分支结构(3&#xf…

Doo Prime 德璞资本:道琼斯期货投资前必看的入门知识

美国道琼工业指数是全球最受关注的股指之一,而道琼斯期货则是典型的衍生性金融商品,交易的标的是道琼指数本身,属于期货投资的范畴,适合短线进出、波段交易。想要参与美国的期货投资市场,却不知道期货该如何开始吗&…

C# XPath的概念

一 XPath的概念 1 XPath是对XML进行查询的表达式 ① Axes(路径) / 及 //; ② 第几个子节点[1] 等; ③ 属性 ④ 条件 [] ⑤ 例如 /books/book/title //price para[type“warning”][5] 2 使用XPath ① XmlDocument docnew XmlDocument(); ② doc.LoadXml(strXml)…

通过idea打包java Maven项目 架包与全包

1 仅架包 架包定义:指仅将代码打包到jar中,在运行的平台必须保证依赖。 方法:maven —> Lifecyle —> Clean —> Package 2 架包与全包(推荐) 全包定义:将maven项目中的依赖于代码都打为一个包。 方法:mave…