机器学习复习(9)——自定义dataset
目录
第一种dataset(文件夹名即为标签)
用于将格式(1)转换为格式(2)
第二种dataset(标签在labels文件夹下的对应的txt文件里面)
第一种dataset(文件夹名即为标签)
数据组织格式(1)
--data
----train
------class1(文件夹名字即为标签)
--------image1.jpg
------class2
dataset
from torch.utils.data import Dataset
from PIL import Image
class Mydata(Dataset):def __init__(self,root_dir,label_dir):self.root_dir = root_dirself.label_dir = label_dirself.path = os.path.join(self.root_dir,self.label_dir)self.img_path= os.listdir(self.path)def __getitem__(self, idx):img_name = self.img_path[idx]img_item_path = os.path.join(self.path,img_name)img = Image.open(img_item_path)label =self.label_dirreturn img,labeldef __len__(self):return len(self.img_path)root_dir="../PATH/TO/train"
class1_label_dir="class1"
class2_label_dir="class2"class1_data =Mydata(root_dir,class1_label_dir)
class2_data =Mydata(root_dir,class2_label_dir) train_dataset= class1_data+class2_data
用于将格式(1)转换为格式(2)
数据集格式转换
import os
root_dir = 'root_path'
target_dir = 'target_image'
img_path = os.listdir(os.path.join(root_dir, target_dir))
label = target_dir.split('_')[0]
out_dir = 'ants_label'
for i in img_path:file_name = i.split('.jpg')[0]with open(os.path.join(root_dir, out_dir,"{}.txt".format(file_name)),'w') as f:f.write(label)
第二种dataset(标签在labels文件夹下的对应的txt文件里面)
数据组织格式(2)
--data
----train
------images
--------01.jpg
------labels
--------01.txt (txt里面的内容是label内容:目标检测,分类等)
# 导入PyTorch的数据集工具和其他必要的库
from torch.utils.data import Dataset
import os
from PIL import Image# 自定义的数据集类,继承自torch.utils.data.Dataset
class Mydate(Dataset):def __init__(self, dir_root, dir_image, dir_label):# 初始化函数,设置数据集的根目录、图像目录和标签目录self.root = dir_root # 数据集的根目录self.image_dir = dir_image # 存放图像的子目录self.image_path = os.path.join(self.root, self.image_dir) # 图像的完整路径self.label_dir = dir_label # 存放标签的子目录self.label_path = os.path.join(self.root, self.label_dir) # 标签的完整路径# 获取图像文件列表和标签文件列表self.image_list = os.listdir(os.path.join(dir_root, dir_image)) # 根据图像目录列出所有图像文件self.label_list = os.listdir(os.path.join(dir_root, dir_label)) # 根据标签目录列出所有标签文件def __getitem__(self, idx):# 通过索引获取数据集中的单个样本,包括图像和标签image_name = self.image_list[idx] # 根据索引获取图像文件名image_path = os.path.join(self.image_path, image_name) # 构造图像的完整路径label_name = self.label_list[idx] # 根据索引获取标签文件名label_path = os.path.join(self.label_path, label_name) # 构造标签的完整路径img = Image.open(image_path).convert('RGB') # 打开图像文件并转换为RGB格式# 读取标签文件with open(label_path, 'r') as f:label = f.read().strip() # 读取标签内容,并去除可能的空白字符return img, labeldef __len__(self):# 返回数据集中样本的总数return len(self.image_list) # 由于图像列表的长度代表了数据集大小,直接返回其长度##############测试代码################
if __name__ == "__main__":# 指定数据集的根目录、图像目录和标签目录dir_root = "root\\path\\train"dir_image = "images"dir_label = "labels"test_data = Mydate(dir_root, dir_image, dir_label) # 创建数据集实例idx = 0 # 指定要获取的样本索引img, label = test_data[idx] # 获取指定索引的样本print(label) # 打印样本的标签
相关文章:
机器学习复习(9)——自定义dataset
目录 第一种dataset(文件夹名即为标签) 用于将格式(1)转换为格式(2) 第二种dataset(标签在labels文件夹下的对应的txt文件里面) 第一种dataset(文件夹名即为标签) 数据组织格式(1) --data ----train …...
【Redis】缓存穿透
问题发生背景:客户端请求的数据再缓存中和数据库中都不存在。 导致的问题:缓存永远不会生效,这些请求都会去请求数据库—导致数据库压力增大。 解决方案: 1.缓存空对象 在Redis中缓存空对象,告诉客户端数据库中没有该值…...
编程出现bug?怎么用Python打印异常
在 Python 编程中,异常是指程序执行过程中出现的错误或异常情况。当程序遇到异常时,为了更好地调试和定位问题,我们需要打印异常信息。本文将详细介绍如何在 Python 中打印异常,并提供一些示例和注意事项。 一、try-except 语句捕…...
P1958 上学路线
题目传送门:P1958 上学路线 一个DFS求迷宫的的题。 详细在代码里: #include <bits/stdc.h>using namespace std; int n,m,a[20][20],t,x,y,ans0; int dx[4]{0,1}; int dy[4]{1,0}; int flag[105][105]{0}; inline void dfs(register int x,regis…...
Android14之HIDL报错:Invalid sparse file format at header magic(一百九十六)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
旭日x3派目标跟随小车
目标跟随小车(yolov5、安全帽识别) 前言最终结果接线实现 前言 上板运行的后处理使用cython封装了,由于每个版本的yolo输出的形状不一样,这里只能用yolov5-6.2这个版本。 ①训练自己的模型并部署于旭日x3派参考: http…...
金潮实业邀您参观2024长三角快递物流展览会
展会介绍 本届展会致力于全面展示快递物流上下游领域的创新解决方案,涵盖快递物流供应链、智能装备、AGV机器人与无人搬运、自动识别、智慧仓储、智慧物流、无人配送、新能物流车及商用车、绿色包装、冷链物流等各个环节,为促进行业合作共融,…...
【超细完整版】C# WebService 通过URL生成WSDL文件和DLL文件 【生成篇】
先学生成,再看调用哦 【超细完整版】C# 获取WebService所有方法并调用 【调用篇】 目的 支持通过web url (自适应“?wsdl”的有无) 生成.wsdl文件 和 .dll文件 实现 将通过一个类的三部分来实现这些功能 获取url中的ClassName (GetClassNameFromUrl&a…...
申请公派访问学者难不难?
申请公派访问学者,对许多人来说是一项具有挑战性的任务。这需要充分的准备和计划,以确保申请能够顺利进行并最终获得批准。下面将探讨一些关于申请公派访问学者的问题以及应对策略。 首先,申请公派访问学者需要有一个明确的研究计划或合作意向…...
关于汽车中网改装需要报备吗?(第二天)
车联网改造需要申报吗? 今天2022年10月20日,小编就给大家介绍一下车联网改装是否需要申报的相关知识。 让我们来看看。 汽车格栅改装无需申报。 这种年检可以直接通过。 您不必担心,因为汽车格栅对于实车的外观来说并不陌生,因此…...
面试官:对于 Java 中多态的理解是什么?
面试官:对于 Java 中多态的理解是什么? 题目 面试官:对于 Java 中多态的理解是什么? 推荐解析 1.父类的引用指向子类的对象 子类重写父类的方法:子类可以继承父类的方法,并对其进行重写。当通过父类的…...
JUC-1M/75±5°超小型密封温度继电器 体积小、重量轻、控温精度高 JOSEF约瑟
JUC系列温度继电器 JUC-1M型超小型密封温度继电器 JUC-2M型超小型密封温度继电器 继电器JUC-027M/2531H-III-G温度继电器 JUC-1M 10C常开温度继电器 JUC-1M 105C温度继电器 用途 小型温控开关系接触感应式密封温度继电器,具有体积小、重量轻、控温精度高等特点&…...
filebeat 配置
主要就是证书的配置 ca_trusted_fingerprint: 产生方式 openssl x509 -fingerprint -sha256 -in /etc/elasticsearch/certs/http_ca.crt 产生的结果 SHA256 Fingerprint 中的冒号 替换掉就是我们想要的结果 ssl: enabled: true ca_trusted_fingerprint: "…...
Qt教程 — 3.5 深入了解Qt 控件:Display Widgets部件(1)
目录 1 Display Widgets简介 2 如何使用Display Widgets部件 2.1 QLabel组件-显示图像或文本 2.2 QCalendarWidget组件-日历简单的使用 2.3 QLCDNumber组件-控件作时钟的显示 2.4 QProgressBar组件-模拟手机电池充电 2.5 QFrame组件-绘制水平/垂直线 Display Widgets将分…...
网络安全框架和云安全参考架构介绍
目录 一、网络安全框架 1.1 概述 1.2 IATF框架 1.2.1 框架来源 1.2.2 框架结构图 1.2.3 框架内容 1.2.3.1 人(People) 1.2.3.2 技术(Technology) 1.2.3.3 操作(Operation) 1.3 NIST网络安全框架 …...
360企业安全浏览器兼容模式显示异常某个内容不显示 偶发现象 本地无法复现情况js
360企业安全浏览器兼容模式显示异常 ,现象测试环境频发 ,本地连测试无法复现,线上反馈问题。 出现问题的电脑为windows且使用360企业安全浏览器打开兼容模式可复现 复现过程: 不直接点击超链接跳转页面 ,登录后直接通…...
JVM常见启动参数
目录 内存参数设置 垃圾收集 内存溢出 其他杂项 总结 java虚拟机(JVM)的启动参数可以用来调整其行为、性能和资源分配。以下是一些常见的JVM启动参数: 内存参数设置 初始化堆内存以满足应用程序需求是最常见的与性能相关的实践之一。 …...
单元测试、集成测试、系统测试区别
一、测方法不同 1、单元测试属于白盒测试范畴。 2、集成测试属于灰盒测试范畴。 3、系统测试属于黑盒测试范畴。 二、考察范围不同 1、单元测试主要测试单元内部的数据结构、逻辑控制、异常处理等。exception handling 2、集成测试主要测试模块之间的接口和接ロ数据传递关…...
NIVision-相机图像采集
应用场景 上位机与工业相机通讯,控制相机抓取图像。 工业相机的通讯接口大多为USB口或网口。 USB口则直接将通讯线缆插入上位机USB端口,打开MAX中设备与接口一栏可以看到电脑给相机分配的资源名称;网口则需要将网线连接相机和上位机…...
【vue-小知识】var、let 和 const之间的区别
文章目录 结论1、重复定义变量名var:允许重复定义变量名let和const:不可以重复定义变量名 2、修改值var:允许修改值let:允许修改值const:不允许修改值,会报错 3、变量提升var : 支持变量提升let和const&…...
新手必看:通义千问1.8B-Chat模型WebUI部署常见问题解决
新手必看:通义千问1.8B-Chat模型WebUI部署常见问题解决 1. 部署准备与环境检查 在开始部署通义千问1.8B-Chat模型WebUI前,我们需要确保环境满足基本要求。这个轻量级模型虽然对硬件要求不高,但仍有一些关键配置需要注意。 1.1 硬件与软件要…...
IRISMAN:PS3游戏备份管理的终极解决方案
IRISMAN:PS3游戏备份管理的终极解决方案 【免费下载链接】IRISMAN All-in-one backup manager for PlayStation3. Fork of Iris Manager. 项目地址: https://gitcode.com/gh_mirrors/ir/IRISMAN 你是否曾因PS3游戏存档丢失而心痛?是否在管理海量游…...
实战指南:5个技巧高效使用计算机视觉特征匹配基准数据集
实战指南:5个技巧高效使用计算机视觉特征匹配基准数据集 【免费下载链接】hpatches-dataset HPatches: Homography-patches dataset. 项目地址: https://gitcode.com/gh_mirrors/hp/hpatches-dataset 在计算机视觉和图像处理研究领域,特征匹配算法…...
网络安全防护:AnythingtoRealCharacters2511 API接口安全设计
网络安全防护:AnythingtoRealCharacters2511 API接口安全设计 1. 企业级API安全的重要性 在现代AI服务架构中,API接口作为核心业务入口,面临着各种网络安全威胁。AnythingtoRealCharacters2511作为动漫转真人图像生成服务,其API…...
d2s-editor:5个核心功能助你深度定制暗黑破坏神2游戏体验
d2s-editor:5个核心功能助你深度定制暗黑破坏神2游戏体验 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 对于暗黑破坏神2的忠实玩家而言,反复刷装备、重新练级往往是游戏体验中的痛点。d2s-editor作为一…...
CTF实战:手把手教你用在线工具解密JSFuck编码(LitCTF 2023真题复盘)
CTF实战:从JSFuck编码到Flag获取的全流程解析 在CTF竞赛的Web安全赛道上,JavaScript混淆技术一直是高频考点。去年LitCTF的一道JSFuck编码题目让不少选手印象深刻——页面源码中那串看似乱码的[][(![][])[[]]...字符,实则是用6个特定字符编写…...
RA595库:基于RAGPIO的74HC595高性能嵌入式驱动方案
1. RA595库概述:面向嵌入式GPIO资源受限场景的74HC595高效驱动方案RA595是一个专为Arduino平台设计的轻量级C库,核心目标是通过RAGPIO(Register-Access GPIO)机制实现对74HC595(或兼容型号如SN74HC595、74LS595&#x…...
如何一键获取Steam游戏清单?5分钟掌握Onekey工具的完整指南
如何一键获取Steam游戏清单?5分钟掌握Onekey工具的完整指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 还在为获取Steam游戏文件清单而烦恼吗?传统方法需要复杂的API…...
圣女司幼幽-造相Z-Turbo数据库集成应用:结合MySQL的AI内容管理系统
圣女司幼幽-造相Z-Turbo数据库集成应用:结合MySQL的AI内容管理系统 你是不是也遇到过这样的场景?市场部催着要一批新产品的营销文案和配图,产品信息刚在后台更新,设计团队还在排期,时间紧任务重,只能手动复…...
Phi-3 Forest Lab应用场景:技术布道师内容生成器——将复杂概念转化为森林隐喻文案
Phi-3 Forest Lab应用场景:技术布道师内容生成器——将复杂概念转化为森林隐喻文案 1. 项目背景与核心价值 在技术传播领域,如何将复杂的AI概念转化为大众易于理解的内容,一直是技术布道师面临的挑战。Phi-3 Forest Lab通过创新的自然隐喻系…...
