如何通过测试生成器消除错误? [英] How can I get rid of getting error through test generator?

查看:0
本文介绍了如何通过测试生成器消除错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的培训生成器和有效生成器工作正常,但当我尝试预测时,我得到了某种错误,我认为这是来自测试生成器。

train_datagen = ImageDataGenerator(rotation_range=15,
                                rescale=1./255,
                                shear_range=0.1,
                                zoom_range=0.2,
                                horizontal_flip=True,
                                width_shift_range=0.1,
                                height_shift_range=0.1
                                )
train_generator = train_datagen.flow_from_dataframe(train_df,
                                                 "./dogs-vs-cats/train/",x_col='filename',y_col='category',
                                                 target_size=Image_Size,
                                                 class_mode='categorical',
                                                 batch_size=batch_size)
validation_datagen = ImageDataGenerator(rescale=1./255)
validation_generator = validation_datagen.flow_from_dataframe(
    validate_df, 
    "./dogs-vs-cats/train/", 
    x_col='filename',
    y_col='category',
    target_size=Image_Size,
    class_mode='categorical',
    batch_size=batch_size
)

这是我的培训和验证生成器,但我的测试生成器不工作?

test_datagen = ImageDataGenerator(rotation_range=15,
                                rescale=1./255,
                                shear_range=0.1,
                                zoom_range=0.2,
                                horizontal_flip=True,
                                width_shift_range=0.1,
                                height_shift_range=0.1)
test_generator = train_datagen.flow_from_dataframe(train_df,
                                                 "./dogs-vs-cats/test/",x_col='filename',y_col='category',
                                                 target_size=Image_Size,
                                                 class_mode='categorical',
                                                 batch_size=batch_size)

也是

test_filenames = os.listdir("./dogs-vs-cats/test1")
test_df = pd.DataFrame({
    'filename': test_filenames
})
nb_samples = test_df.shape[0]
predict = model.predict_generator(test_generator, steps=np.ceil(nb_samples/batch_size))

ValueError:请求检索元素0,但序列长度为0

推荐答案

错误的原因是there are no Image files文件夹中的cats and dogstest文件夹。

代码中的更多观察:

  1. 应该是

    test_generator = test_datagen.flow_from_dataframe(train_df,.....而不是

    test_generator = train_datagen.flow_from_dataframe(train_df, ...

  2. 在下面的代码行中,您使用了文件夹test

test_generator = train_datagen.flow_from_dataframe(train_df, "./dogs-vs-cats/test/",...........

但在下面的代码行中,您使用了文件夹test1。为什么?

test_filenames = os.listdir("./dogs-vs-cats/test1")

  1. 请使用model.predict而不是model.predict_generator,因为后者已弃用。

这篇关于如何通过测试生成器消除错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆