Keras:在flow_from\u directory()中使用多个目录

2024-06-06 22:19:23 发布

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

对于大多数数据集,图像是独立的,并且可以将它们随机地分成train/和{}目录,以便与Keras'flow_from_directory()一起使用。然而,对于我的申请,情况并非如此。例如,假设我想对人们是微笑还是皱眉进行分类。我招募了10名志愿者,拍摄了100张每个志愿者微笑和皱眉的照片,而不是使用网上随机发现的数千张照片。在我的最终应用程序中,我想对新用户是微笑还是皱眉进行分类。对于一个公平的测试,我必须确保在我的测试集中没有用户的图像出现在训练集中(否则我的分类器可能会发现特定于该用户的特性,这是我不想要的),所以我将一个用户排除在外,并在其他九个用户上训练我的模型。我的目录结构如下:

user1/
    smile/
        100 images
    frown/
        100 images
...
user10/
    smile/
        100 images
    frown/
        100 images

有什么方法可以将Keras user1/作为test/目录,user2/到{}作为train/目录?在

注意:我的问题不是this question的重复,因为这涉及到在多个目录中并行馈送以用于单个培训示例。我的问题类似于this,但是这个问题写得太差了,我不确定用户是否在问我同样的问题。在


Tags: 数据用户图像目录分类trainthis照片
1条回答
网友
1楼 · 发布于 2024-06-06 22:19:23

@TimD1我相信如果你稍微改变一下你的目录结构,如下图所示,你可以在keras中使用flow_from_directory。在

Test_Directory/
             User1/
                  200 images here(don't create separate folders for smile and frown here) 

Train_Directory/
               Smile/
                     All the images for smile for users 2-10 
               Frown/
                     All the images for frown for users 2-10    

一旦有了这个目录结构,就可以使用下面的代码,并根据应用程序的需要更改详细信息。重要的是目录的路径,以及是否要创建验证集。在

^{pr2}$

在这一点之后,使用fit_generator来训练,predict_generator来测试。如果您选择为test_setshuffle设置为True,则需要在预测测试标签之前执行test_set.reset()

相关问题 更多 >