matlab 构建数据集实用 api

我们当前有如下目录结构的图像数据集(用于图像分类):


这里写图片描述

1. imageDatastore

  • imageDatastore:imds = imageDatastore('./images', 'IncludeSubfolders', true, 'labelsource', 'foldernames')
    • 第一个参数./images表示文件所在的路径;
    • 后续参数都是键值对(key-value)的形式
      • includesubfolders:是否继续读取子文件夹中的图像数据;
      • labelsource:图像 label 的来源是什么;
    • 此时的imds已包含了原始数据集丰富的信息;
      • tbl = countEachLabel(imds) ⇒ 见名知意,创建一个表格,某一label图像,及其对应的图像个数;
      • categories = tbl.Label;( tbl 是一个 table,tbl.Label 索引的是表中的列)
    • imds.Files:全部文件名构成的 cell 集合;

2. splitEachLabel:拆分数据集

  • [imds1,imds2] = splitEachLabel(imds, p);
    • p 可以是一个小数,表示百分比,根据百分比划分;
    • 也可以是一个整数,根据这一整数进行划分;
  • 0
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
构建一个数据集,首先需要明确数据集的目标和用途。然后,需要收集和整理数据,并进行预处理和清洗。最后,将数据集划分为训练集、验证集和测试集。 下面是一个简单的 MATLAB 代码示例,用于构建一个包含图像和标签的数据集: ``` % 导入包含图像的文件夹 imds = imageDatastore('path/to/images', 'LabelSource', 'foldernames'); % 定义类别标签 classNames = {'class1', 'class2', 'class3'}; % 将图像分类到不同的类别中 imds.ReadFcn = @(filename)readAndPreprocessImage(filename); tbl = countEachLabel(imds); minSetCount = min(tbl{:,2}); % 随机选择相同数量的图像来创建训练集、验证集和测试集 [imdsTrain, imdsValidation, imdsTest] = splitEachLabel(imds, minSetCount, 'randomize'); % 将数据集保存到.mat文件中 save('myDataset.mat', 'imdsTrain', 'imdsValidation', 'imdsTest', 'classNames'); ``` 上述代码中,我们导入包含图像的文件夹,并使用 `imageDatastore` 函数创建一个图像数据存储库。然后,我们定义了类别标签,并使用 `countEachLabel` 函数计算每个类别中的图像数量。接下来,我们随机选择相同数量的图像来创建训练集、验证集和测试集,并使用 `splitEachLabel` 函数来实现。最后,我们将数据集保存到一个 .mat 文件中。 当然,这只是一个简单的示例,实际上构建数据集需要考虑更多的因素,如数据的质量、平衡性、扩充等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值