我在进行一些深度学习实验时使用了Keras。训练模型后,我想用以下代码测试我的模型:
test_datagen = ImageDataGenerator(rescale=1 / 255.)test_generator = test_datagen.flow_from_directory(directory='test/', color_mode='grayscale', # 不打乱顺序 shuffle=False, # 使用与训练时相同的大小 target_size=(256, 256), batch_size=1, class_mode=None )preds = model.predict_generator(test_generator, steps=12)
问题是测试文件夹中还包含了其他子目录的子目录(例如 test/test2/test3/test4 …),我希望能够访问到test4文件夹中的图像,但却得到了IsADirectoryError: [Errno 21] Is a directory: 'test/test2/test3'
错误。
我的第一个问题是:有没有可能搜索并使用这些图像,而不是将所有图像复制并粘贴到一个文件夹中?
第二个问题:我想只使用.png格式的图像。我可以做类似from_directory(directory='test/*.png')
的事情来只选择.png文件吗?
提前感谢。更新日期:2020年2月24日
回答:
对于第二个问题,我已经找到了解决方法:
for i in range(len(test_generator)): if test_generator.filenames[i].find(".png") != -1: pred = model.predict(test_generator[i])
欢迎更好的解决方案。谢谢