r - 如何将我的图像数据转换为类似于时尚 MNIST 数据的格式
问题描述
我是机器学习的新手,所以请耐心回答我的新手问题。我正在尝试根据底栖有孔虫的详细分类来训练一个模型来识别底栖有孔虫……这里是有孔虫的样例, 我只需使用 flow_images_from_directory () 加载我的数据就成功地做到了这一点。但是,我不知道如何探索通常由 flow_images_from_directory 生成的对象的结构。我想将我的数据集格式化为类似于 Fashion MNIST 数据的结构。方便我们修改下面的代码。我对魔法包有一些经验
dataset_fashion_mnist()
c(train_images, train_labels) %<-% fashion_mnist$train
c(test_images, test_labels) %<-% fashion_mnist$test
这样我就有了类似 set 的东西,这将使我更容易理解,尤其是标签部分。此外,如果可能的话,我希望能够将 CSV 文件中的其他信息附加到数据集。我的数据已经按如下方式排列在文件夹和子文件夹中
data/
train/
ammonia/ ### 102 pictures
ammonia001.tif
ammonia002.tif
...
elphidium/ ### 1024 pictures
elphidium001.jpg
elphidium002.jpg
...
test/
ammonia/ ### 16 pictures
ammonia001.jpg
ammonia002.jpg
...
elphidium/ ### 6 pictures
elphidium.jpg
elphidium.jpg
...
任何有关材料的帮助或指南将不胜感激。
解决方案
我将描述您将在较高级别上执行的步骤。
- 假设你现在有一个训练和测试集,你所有的类都合理平衡
- 加载图像并提取像素值,将值标准化,使其介于 0 和 1 之间
- 如果图像的大小不同,则应填充它们,使它们都具有相同的大小
- 如果您不使用需要 2D 结构的方法,例如 CNN,您还应该展平像素值
- 将您的图像(以像素形式)与您的类标签相关联
- 现在您有一组像素形式的固定大小的图像及其相关的类标签。然后,您可以将其输入到您正在使用的任何模型中
希望这会有所帮助,如果您对任何部分感到困惑,请告诉我
旁注:从您的样本来看,您的数据集似乎严重偏斜 - 大量的 elphidium 示例,但没有很多氨示例。这可能会导致以后出现问题。通常,您希望类之间的示例数量平衡。
推荐阅读
- python - 从 python 内部的数据库中删除记录会出错
- vue.js - VueJS将计算值从组件传递给父级
- flutter - Flutter resizeToAvoidBottomPadding 阻塞整个屏幕
- java - 数组利率修订:
- r - r:使用 lapply 为栅格赋值
- python - cvs 文件到 host.yaml 用于 Nornir
- json - GET 参数在 URL 中起作用,但在 Postman 中不作为正文
- c# - C#项目引用之谜
- c++ - 我的 C++ 函数给出了关于声明的异常错误
- android - Android 设备未收到通过 Firebase 云消息传递发送的 5% 的推送