我已经使用ImageDataGenerator和flow_from_directory进行培训和验证。
这些是我的目录:
train_dir = Path('D:/Datasets/Trell/images/new_images/training')
test_dir = Path('D:/Datasets/Trell/images/new_images/validation')
pred_dir = Path('D:/Datasets/Trell/images/new_images/testing')
图像生成器代码:
img_width, img_height = 28, 28
batch_size=32
train_datagen = ImageDataGenerator(
rescale=1. / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1. / 255)
train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='categorical')
找到属于 4 个类别的 1852 张图片
找到属于 4 个类别的 115 个图像
这是我的模型训练代码:
history = cnn.fit_generator(
train_generator,
steps_per_epoch=1852 // batch_size,
epochs=20,
validation_data=validation_generator,
validation_steps=115 // batch_size)
现在我在测试文件夹中有一些新图像(所有图像仅在同一个文件夹中),我想对其进行预测。但是当我使用时,.predict_generator我得到:
找到属于 0 个类别的 0 个图像
所以我尝试了这些解决方案:
1) Keras:如何将 predict_generator 与 ImageDataGenerator 一起使用?这没有成功,因为它仅尝试验证集。
2)如何使用model.predict来预测新图像? module image not found
3)如何使用 predict_generator 对 Keras 中的流测试数据进行预测?这也没有奏效。
我的火车数据基本上存储在 4 个单独的文件夹中,即 4 个特定的类,验证也以相同的方式存储并且效果很好。
所以在我的测试文件夹中,我有大约 300 张图像,我想在这些图像上预测并制作一个数据框,如下所示:
image_name class
gghh.jpg 1
rrtq.png 2
1113.jpg 1
44rf.jpg 4
tyug.png 1
ssgh.jpg 3
我还使用了以下代码:
img = image.load_img(pred_dir, target_size=(28, 28))
img_tensor = image.img_to_array(img)
img_tensor = np.expand_dims(img_tensor, axis=0)
img_tensor /= 255.
cnn.predict(img_tensor)
但我收到此错误: [Errno 13] Permission denied: 'D:\\Datasets\\Trell\\images\\new_images\\testing'
但我一直无法predict_generator在我的测试图像上。那么我如何使用 Keras 预测我的新图像。我在谷歌上搜索了很多,也在 Kaggle Kernels 上搜索过,但没有找到解决方案。
MMMHUHU
慕神8447489
犯罪嫌疑人X
相关分类