因此,首先应将测试图像放置在测试文件夹内的单独文件夹中。因此,在我的情况下,我在folder中创建了另一个文件
test夹并将其命名
all_classes。然后运行以下代码:
test_generator = test_datagen.flow_from_directory( directory=pred_dir, target_size=(28, 28), color_mode="rgb", batch_size=32, class_mode=None, shuffle=False)
上面的代码给了我一个输出:
找到属于1类的306张图像
最重要的是,您必须编写以下代码:
test_generator.reset()
否则会有奇怪的输出。然后使用
.predict_generator()函数:
pred=cnn.predict_generator(test_generator,verbose=1,steps=306/batch_size)
运行上面的代码将给出概率输出,因此首先我需要将它们转换为类编号。在我的情况下,这是4个班级,所以班级编号是0、1、2和3。
编写的代码:
predicted_class_indices=np.argmax(pred,axis=1)
下一步是我想要类的名称:
labels = (train_generator.class_indices)labels = dict((v,k) for k,v in labels.items())predictions = [labels[k] for k in predicted_class_indices]
类别编号将替换为类别名称。最后一步,如果要将其保存到csv文件中,请将其布置在数据帧中,图像名称后附有预测的类。
filenames=test_generator.filenamesresults=pd.Dataframe({"Filename":filenames,"Predictions":predictions})
显示您的数据框。现在一切都完成了。您将获得图像的所有预测类别。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)