猫狗识别


前言

模型初步搭建成功并训练保存,在训练集上的预测准确率挺高的,但是需要其他不在训练集中的样本来检测才能更好地评估模型。


导入相关包

from keras.models import load_model
from keras.preprocessing.image import ImageDataGenerator
from keras.preprocessing.image import load_img,img_to_array
from matplotlib import pyplot as plt

加载测试模型

model_cnn = load_model('model_cnn.h5')

加载测试样本并进行预处理

est_datagen = ImageDataGenerator(rescale=1. / 255)
test_set = test_datagen.flow_from_directory('./test_set', target_size=(50,50), batch_size=32, class_mode='binary')

模型预测并计算准确率

test_set_predict = model_cnn.predict_classes(test_set)
accuacry = model_cnn.evaluate_generator(test_set)
# print(accuacry)

可视化预测结果

从本地加载九张图片来进行预测

fig = plt.figure(figsize=(8, 8))
for i in range(1,10):
    image_name = 'result/' + str(i) + '.png'
    img_original = load_img(image_name, target_size=(50, 50))
    img = img_to_array(img_original) / 255
    img = img.reshape(-1, 50, 50, 3)
    result = model_cnn.predict_classes(img)
    plt.subplot(3, 3, i)
    plt.imshow(img_original)
    plt.title('dog' if result == 1 else 'cat')
    pass
plt.show()

总结

由最终的准确率计算可知,模型的表现并不是很好,下面将采用经典的VGG16模型来进行优化处理。

版权声明:本文为CSDN博主「易小顺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MTYSYS19990212/article/details/114899747

易小顺

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

【模型压缩】Yolov3目标检测模型蒸馏实验

PaddleDetection知识蒸馏 知识蒸馏主要是让让新模型(通常是一个参数量更少的模型)近似原模型(模型即函数)。注意到,在机器学习中,我们常常假定输入到输出有一个潜在的函数关系,这个函数是未知的:从头学习一个新模型就是从有限的数据中近