从目录中为CNN加载Keras中的图像,但在CSV-fi中添加标签

2024-04-20 14:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在目录train_images = './data/images'train_labels = './data/labels.csv'中有一组图像文件

例如,train_images中有1000个图像作为377.jpg,17814.jpg ....等等。它们对应的类保存在不同的CSV文件中。你知道吗

编辑-以下是CSV文件中的几行-

>>
    ID          Class

0   377.jpg     MIDDLE
1   17814.jpg   YOUNG
2   21283.jpg   MIDDLE
3   16496.jpg   YOUNG
4   4487.jpg    MIDDLE

这里I.D是图像文件名,class是它所关联的类。你知道吗

我本可以用平常的方法

ImageDataGenerator().flow_from_directory(train_images, class_mode='binary', batch_size=64)

但问题是标签在CSV文件中。我能做的就是用os重命名所有的文件,把不同的文件放在不同的目录中,然后加载它,但这看起来太不成熟和愚蠢了。你知道吗

如何在Keras for CNN中加载数据,其中每个图像都是维度(h,w,c)?你知道吗


Tags: 文件csv图像目录编辑middledatalabels
1条回答
网友
1楼 · 发布于 2024-04-20 14:22:26

然后可以使用函数read_csv使用pandascsv文件作为DataFrame读取:

import pandas as pd

df = pd.read_csv('csvfilename', delimiter=',')

然后使用ImageDataGenerator类的flow_from_dataframe函数。你知道吗

这里有一个教程link

flow_from_dataframe(dataframe, directory=None, x_col='filename', y_col='class', weight_col=None, target_size=(256, 256), color_mode='rgb', classes=None, class_mode='categorical', batch_size=32, shuffle=True, seed=None, save_to_dir=None, save_prefix='', save_format='png', subset=None, interpolation='nearest', validate_filenames=True)

相关问题 更多 >