如果我的数据是以这种方式组织的,我应该如何将数据加载到 x_train 和 y_train 中以创建一个 Keras 模型?
train.zip
训练集的图像文件
train.txt
训练集的标签
test.zip
测试集的图像文件
train.txt 的内容如下所示
zip 文件的结构如下:
我不知道该如何加载这些数据,以便获得用于 CNN 模型的 x_train、y_train、x_test 和 y_test 的 numpy 数组。我尝试了很多方法,但都没有成功
回答:
你可以使用 图像数据生成器。你需要解压文件,并为 txt 文件添加列标题。例如,像这样:
Filename Labeltrain/0.jpg 5train/1.jpg 21
然后你可以使用 pandas 读取 txt 文件,并使用 ImageDataGenerator:
df = pandas.read_csv("uos-com2028/train/train.txt", delim_whitespace=True)columns = [ "Label",]# 如果图像的值范围从 0 到 255,你可能需要重新调整图像尺寸datagen = ImageDataGenerator( rescale=1./255.,)# 你需要根据你的图像调整 color_mode、batch_size 和 target_size值traindata = datagen.flow_from_dataframe( dataframe=df, directory="uos-com2028/train", x_col="Filename", y_col=columns, color_mode='rgb', batch_size=16, class_mode="raw", target_size=(256, 256), shuffle=True,)
然后你可以将 traindata 对象用作在运行 model.fit() 时的训练输入