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

PyTorch 之 Dataset 类入门学习

PyTorch 之 Dataset 类入门学习

Dataset 类简介

  • PyTorch 中的 Dataset 类是一个抽象类,用来表示数据集。通过继承 Dataset 类可以进行自定义数据集的格式、大小和其它属性,供后续使用;
    在这里插入图片描述

  • 可以看到官方封装好的数据集也是直接或间接的继承自 Dataset
    在这里插入图片描述

自定义数据集逻辑

  • 继承 Dataset 类;
  • 重写 init():构造函数,可自定义数据读取方法以及进行数据预处理;
  • 重写 len():返回数据集大小;
  • 重写 getitem_():索引数据集中的某一个数据

代码实现

import torch
from torch.utils.data import Dataset# 自定义数据集继承 pytorch 内置的 Dataset 类class GreenDataset(Dataset):"""重写构造函数Args:data_tensor 数据或数据集合target_tensor 数据标签或数据标签集合"""def __init__(self, data_tensor, target_tensor):self.data_tensor = data_tensorself.target_tensor = target_tensor# 重写 len 方法: return 数据集大小def __len__(self):return self.data_tensor.size(0)# 重写 getitem 方法:基于索引,return 对应的数据及其标签,组合成 1 个元组返回def __getitem__(self, index):return self.data_tensor[index], self.target_tensor[index]def test_data_set():"""自定义数据集测试"""# 生成数据集和标签集 (数据元素长度=标签元素长度)# 10 行 3 列数据,可以理解为 10 个元素,每个元素是一维的 3个元素列表data_tensor = torch.randn(10, 3)# 对应方法 torch.randint(low, high, size)标签是 0 或 1 的 10 个元素# low ( int , optional ) – 要从分布中提取的最小整数。默认值:0# high ( int ) – 高于要从分布中提取的最高整数# size ( tuple ) – 定义输出张量形状的元组# 以下示例中 low 取默认值 0target_tensor = torch.randint(2, (10,))# 将数据封装成自定义数据集的 Datasetmy_dataset = GreenDataset(data_tensor, target_tensor)# 调用方法:查看数据集大小print('dataset size info:', len(my_dataset))# 根据索引获取数据print('tensor_data[0]: ', my_dataset[0])# 打印数据集for i, my_dataset in enumerate(my_dataset):print('索引值:%s 数据:%s' % (i, my_dataset))if __name__ == '__main__':test_data_set()

重点函数

  • torch.randn()
    在这里插入图片描述

  • torch.randint()

执行结果

在这里插入图片描述

相关文章:

PyTorch 之 Dataset 类入门学习

PyTorch 之 Dataset 类入门学习 Dataset 类简介 PyTorch 中的 Dataset 类是一个抽象类,用来表示数据集。通过继承 Dataset 类可以进行自定义数据集的格式、大小和其它属性,供后续使用; 可以看到官方封装好的数据集也是直接或间接的继承自 …...

Java update scheduler

引言 Java 更新调度器是 Java 中的一个特性,可以自动化 Java 应用程序的更新过程。它提供了一种方便的方式来安排 Java 应用程序的更新,确保其与最新的功能、错误修复和安全补丁保持同步。本文将深入介绍如何使用 Java 更新调度器,并解释它对…...

常见树种(贵州省):006栎类

摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、麻栎 …...

拓扑排序-

有向无环图是拓扑排序 拓扑排序将图中所有的顶点排成一个线性序列,使得所有的有向边均从序列的前面指向后面。 拓扑排序使用深度优先搜索来实现,图中有环则无法进行拓扑排序 一个有向图,如果图中有入度为0的点,就把这个点删掉…...

Oracle数据库如何定位trace file位置

用一个示例来说明吧。 在导入master key时,出现错误: ADMINISTER KEY MANAGEMENTIMPORT KEYS WITH SECRET "my_secret"FROM /tmp/export.expIDENTIFIED BY keypwd5 WITH BACKUP; ADMINISTER KEY MANAGEMENT * ERROR at line 1: ORA-46655…...

电脑盘符错乱,C盘变成D盘怎么办?

在一些特殊情况下,磁盘盘符会出现错乱,C盘可能会变成D盘。那么,这该怎么办呢?下面我们就来了解一下。 通过磁盘管理更改盘符 磁盘管理是Windows自带的工具,它位于“计算机管理”的控制台中。管理硬盘及其所包含的卷或…...

Android WMS——客户端输入事件处理(十九)

前面的文章我们介绍了 WMS 中的输入服务的启动及事件处理,这一篇我们来看一下客户端对输入事件的处理。 一、事件初始化 事件的初始化就是在添加窗口的过程。 1、ViewRootImpl 源码位置:/frameworks/base/core/java/android/view/ViewRootImpl.java public void setView(…...

Python基础学习__测试报告

# 使用pycharm生成报告:只有在单独执行一个TestCase文件时可以生成,使用TestSuite等就不能用了 # 使用第三方的测试报告:例如:HTMLTestRunner第三方类库 #使用HTMLTestRunner这个执行对象# 1.获取第三方的测试运行类Runner模块(一个py文件),将其放在代码目录下 # 2.导包:unitte…...

bclinux aarch64 ceph 14.2.10 云主机 4节点 fio

ceph -s 由于是基于底层分布式存储的云主机,数据仅供参考 本地云盘性能 direct1 1M读取 IOPS134, BW134MiB/s [rootceph-client rbd]# cd / [rootceph-client /]# fio -filenamefio.bin -direct1 -iodepth 128 -thread -rwread -ioenginelibaio -bs1M -size10G -n…...

智能座舱架构与芯片- (14) 测试篇 上

一、 验证平台概要 1.1 测试软件方法论 “软件定义汽车” 的时代,软件在整车制造中的重要性日渐凸显。但不同于其他行业的软件开发,汽车行业有自己独特的软件开发要求。首先是需求严谨、需求层次复杂、需要通过专业的工具进行管理;其次开发…...

【Django-DRF用法】多年积累md笔记,第3篇:Django-DRF的序列化和反序列化详解

本文从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做的最核心工作,然后介绍Django REST framework能帮助我们简化开发REST API的工作。 全…...

Redis主从复制,哨兵和Cluster集群

主从复制: 主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份(和同步),以及对于读操作的负载均衡和简单的故障恢复。 缺陷:故障恢复无法自动化…...

Linux嵌入式I2C协议笔记

硬件: 1.I2C结构 在一个SOC中有一个或者多个I2C控制器,一个I2C控制器可以连接一个或多个I2C设备。 I2C总线需要两条线,时钟线SCL和数据线SDA 2.I2C传输数据格式 开始信号(S):SCL为高电平时,S…...

科技的成就(五十三)

503、任天堂首次公开 Switch 2016 年 10 月 20 日,任天堂首次公开 Switch 正式名称及造型。Switch 是任天堂推出的混合型游戏机,可作为家用游戏机,也可作为便携式掌机。Switch 在开发过程中就以代号 NX 而闻名,成为当年的现象级产…...

Ubuntu22.04 编译 AOSP

在 Ubuntu 22.04 系统上搭建环境编译 AOSP(Android Open Source Project)需要进行以下步骤: 1, 更新系统:首先,确保您的 Ubuntu 22.04 系统已经更新到最新版本。可以使用以下命令进行系统更新: sudo apt update sudo apt upgrade2,安装必要的软件包:AOSP 编译需要一些…...

【计算机网络】多路复用的三种方案

文章目录 1. selectselect函数select的工作特性select的缺点 2. pollpoll函数poll与select的对比 3. epollepoll的三个接口epoll的工作原理epoll的优点LT和ET模式epoll的应用场景 🔎Linux提供三种不同的多路转接(又称多路复用)的方案&#xf…...

供应链和物流的自动化新时代

今天,当大多数人想到物流自动化时,他们会想到设备。机器人、无人机和自主卡车运输在大家的谈话中占主导地位。全自动化仓库的视频在网上流传,新闻主播们为就业问题绞尽脑汁。这种炒作是不完整的,它错过了供应链和物流公司的机会。…...

Python与ArcGIS系列(九)自定义python地理处理工具

目录 0 简述1 创建自定义地理处理工具2 创建python工具箱0 简述 在arcgis中可以进行自定义工具箱,将脚本嵌入到自定义的可交互窗口工具中。本篇将介绍如何利用arcpy实现创建自定义地理处理工具以及创建python工具箱。 1 创建自定义地理处理工具 在arctoolbox中的自定义工具箱…...

Nginx部署前端项目

Nginx部署前端项目 1.在nginx官网http://nginx.org/en/download.html ,下载稳定版本: 2.解压后,点击根目录中的nginx.exe即可启动Nginx,或是在nginx安装目录中启动cmd并输入以下命令启动: nginx.exe 或 start nginx3…...

根据文件类型进行下载, 文档/图片

根据文件类型进行下载, 文档/图片 function loadFile(fileUrl, fileName) {if (isImageByExtension(fileUrl)) {try {downloadRes(fileUrl, fileName)} catch (error) {downloadFile(fileUrl, fileName)}} else {downloadRes(fileUrl, fileName)} } const downloadFile (file…...

告别手动切换!在RK3568和Amlogic S905X3上实现Linux RS485驱动自动收发控制

嵌入式Linux RS485自动收发控制实战:RK3568与Amlogic S905X3驱动优化指南 在工业自动化、智能家居和物联网设备开发中,RS485总线因其抗干扰能力强、传输距离远等优势成为首选通信方案。然而传统开发模式下,工程师不得不在应用层手动控制GPIO切…...

将 Claude Code 编程助手对接至 Taotoken 的完整配置指南

将 Claude Code 编程助手对接至 Taotoken 的完整配置指南 Claude Code 是一款流行的编程助手工具,它原生支持通过 Anthropic 兼容的 API 进行通信。对于希望统一管理多个大模型 API 的开发者而言,将其接入 Taotoken 平台是一个便捷的选择。Taotoken 提供…...

MAA明日方舟自动辅助工具终极指南:解放双手的完整解决方案

MAA明日方舟自动辅助工具终极指南:解放双手的完整解决方案 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https:/…...

STM32F407的RTC秒中断实战:CubeMX配置+掉电保持代码详解(附完整工程)

STM32F407的RTC秒中断实战:CubeMX配置掉电保持代码详解(附完整工程) 1. 项目背景与核心需求 在嵌入式系统中,实时时钟(RTC)模块的重要性不言而喻。它不仅是系统时间的守护者,更是许多定时任务、…...

使用Node.js快速为Web应用集成多模型对话能力

使用Node.js快速为Web应用集成多模型对话能力 为Web应用添加智能对话功能,通常需要开发者处理复杂的模型API接入、密钥管理和计费问题。通过Taotoken平台提供的统一OpenAI兼容API,开发者可以简化这一过程,快速集成多种主流大模型&#xff0c…...

Freertos中Task状态信息和CPU占用率查看

1. 启用 “状态信息” 2. 启用专门定时器启用的定时器频率,需要超过Freertos时基10倍以上,比如Freertos的周期是1ms,则定时器的周期至少是1ms/10 100us.3. 更新函数//增加变量定义volatile long long FreeRTOSRunTimeTicks;//更新函数void configureTim…...

维普AIGC率过高怎么解?双效工具同步搞定查重与AI痕迹

毕业季双重检测压力陡增,不少同学熬夜反复改稿,维普查重标红迟迟消不掉,AIGC疑似率更是居高不下,越改越乱不说,还容易打乱论文核心逻辑。其实完全不用死磕手动改写,现在多款专业双效降重工具已经能实现“一…...

高效运筹优化工具实战:5个核心模块深度解析与配置指南

高效运筹优化工具实战:5个核心模块深度解析与配置指南 【免费下载链接】or-tools Googles Operations Research tools: 项目地址: https://gitcode.com/gh_mirrors/or/or-tools OR-Tools是Google开发的高效运筹学工具库,为复杂优化问题提供全面解…...

如何在老旧Android电视上免费观看4K直播?终极电视直播应用指南

如何在老旧Android电视上免费观看4K直播?终极电视直播应用指南 【免费下载链接】mytv-android 使用Android原生开发的电视直播软件 项目地址: https://gitcode.com/gh_mirrors/myt/mytv-android 如果你正在寻找一款能在老旧Android电视上流畅播放4K直播的免费…...

ChatGPT账号自动化注册:基于Selenium与反检测技术的实战解析

1. 项目概述与核心价值 最近在折腾一些AI应用,发现很多有趣的玩法都需要一个独立的ChatGPT账号来调用API。直接去官网注册,流程繁琐不说,还经常遇到各种限制,比如手机号验证、地区限制等等,对于想批量测试或者搭建自动…...