「小土堆」pytorch DataSet

news/2024/12/21 21:00:16/

pytorch_DataSet_0">「小土堆」pytorch DataSet

python">from cProfile import labelfrom torch.utils.data import Dataset
from PIL import Image
import osclass MyData(Dataset):def __init__(self, root_dir, label_dir):# root_dir = "hymenoptera_data/train"# label_dir = "ants_img"# 这两个值是由后面的实例传递过来的self.root_dir = root_dirself.label_dir = label_dir# 将其整合self.path = os.path.join(root_dir, label_dir)# os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。self.img_name_path = os.listdir(self.path)def __getitem__(self, index):img_name = self.img_name_path[index]img_item_path = os.path.join(self.path, img_name)img = Image.open(img_item_path)label = self.label_dir# 返回的是图片和名字return img, labeldef __len__(self):return len(self.img_path)ants_dataset = MyData('hymenoptera_data/train', 'ants_img')
# for item in ants_dataset.img_path:
#     print(item)
# print(ants_dataset.__len__())
# print(ants_dataset.__getitem__(0))bees_dataset = MyData('hymenoptera_data/train', 'bees_img')
# print(bees_dataset.__len__())
# print(bees_dataset.__getitem__(0))
#
# print(len(ants_dataset+bees_dataset))# ant_dataset中包含两个值,一个img一个label
img, label = ants_dataset[0]
img.show()

​ 视频中一开始是先写class的以至于一开始没有弄懂 ‘root_dir’ 和 ‘label_dir’ 是干什么的,在创建实例之后进行传参就可以很好的理解了,前者是指文件夹的路径,后者是文件夹下的分类,由于文件夹下面分别有两个类别的例子,所以分为root和label两类。

dataset提供了访问和处理大量自然语言处理(NLP)数据集的工具,简单来说就是对数据集中的图片进行操作的一个简单的库。

python"> def __init__(self, root_dir, label_dir):# root_dir = "hymenoptera_data/train"# label_dir = "ants_img"# 这两个值是由后面的实例传递过来的self.root_dir = root_dirself.label_dir = label_dir# 将其整合self.path = os.path.join(root_dir, label_dir)# os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。self.img_name_path = os.listdir(self.path)

​ 上述代码中从上到下来看,首先是MyData库,其继承了Dataset这个类,第一个函数就是对数据的初始化,可以理解成java中的构造器一样的功能。

​ os.path.join()此函数是将路径整合在一起赋值给self.path

​ os.listdir()此函数是返回self.path路径下包含的文件夹或文件夹的名字的列表,重点是它返回的是一个列表,这个列表中包含了文件夹下面的文件的信息

python">    def __getitem__(self, index):img_name = self.img_name_path[index]img_item_path = os.path.join(self.path, img_name)img = Image.open(img_item_path)label = self.label_dir# 返回的是图片和名字return img, labeldef __len__(self):return len(self.img_path)

​ getitem这个函数的功能主要是对列表中的图片信息进行整合和赋值


http://www.ppmy.cn/news/1533841.html

相关文章

通信工程学习:什么是LAN局域网、MAN城域网、WAN广域网

LAN局域网、MAN城域网、WAN广域网 LAN(Local Area Network,局域网)、MAN(Metropolitan Area Network,城域网)和WAN(Wide Area Network,广域网)是计算机网络中根据覆盖范围…

JAIN SLEE 中的 Event Element

JAIN SLEE 中的 Event Elements 在 JAIN SLEE(Service Logic Execution Environment)中,event 元素用于定义 SBB(Service Building Block)可以接收或触发的事件。以下是对 event 元素及其子元素的详细说明&#xff0c…

Vue3 组件中使用 SCSS 变量

在 JavaScript 中不能直接使用 SCSS 变量。但是可以通过一些间接的方法来实现类似的效果。 一、使用 sass-extract 使用 sass-extract 库来提取 SCSS 变量并生成 JSON 文件,然后在 JavaScript 中读取这个 JSON 文件来获取变量值。 1. 安装 sass-extract npm ins…

宠物饮水机的水箱低液位提醒如何实现?

ICMAN液位检测芯片轻松实现宠物饮水机的水箱低液位提醒功能! 工作原理 : 基于双通道电容式单点液位检测原理 方案特点: 液位检测精度高达1mm,超强抗干扰,动态CS 10V 为家用电器水位提醒的应用提供了一种简单而又有…

谷粒商城のOAuth2.0单点登录

文章目录 前言一、账号密码登录1、整合短信验证2、验证码校验&防止重复获取验证 二、社交登录1、第三方平台设置2、代码整合3、整体效果演示4、补充:其他模式 三、Session共享问题1、引入Spring Session2、配置Spring Session 四、单点登录 前言 本篇主要介绍谷…

5个python多线程简单示例

示例 1: 基本线程创建 # 示例 1: 基本线程创建 import threading import timedef print_numbers():for i in range(5):time.sleep(1)print(i)# 创建线程 thread threading.Thread(targetprint_numbers)# 启动线程 thread.start()# 等待线程完成(可选) …

AT89s51单片机和STC单片机烧录不同引脚问题

首先确定一下,两种烧录接口引脚不同 STC烧录器主要使用串口引脚 实际上stm32中也可以使用这种UART通信方式烧录程序,只是需要确定连接引脚进入bootloader模式 AT89S51来源Atmel公司,其中AVR单片机也是这个公司 ISP和SPI不是一个概念&…

c语言基础作业

选择题 1.1、以下选项中,不能作为合法常量的是 __________ A)1.234e04 B)1.234e0.4C)1.234e4 D)1.234e0 1.2、以下定义变量并初始化错误的是_____________。 A) char c1 ‘H’ ; B) char c1 9…