使用Keras预训练好的模型进行目标类别预测详解

时间:2021-05-22

前言

最近开始学习深度学习相关的内容,各种书籍、教程下来到目前也有了一些基本的理解。参考Keras的官方文档自己做一个使用application的小例子,能够对图片进行识别,并给出可能性最大的分类。

闲言少叙,开始写代码

环境搭建相关就此省去,网上非常多。我觉得没啥难度

from keras.applications.resnet50 import ResNet50from keras.preprocessing import imagefrom keras.applications.resnet50 import preprocess_input, decode_predictionsimport numpy as np

导入权重,首次会从网络进行下载,不过速度还是挺快的,使用ImageNet的数据集

model = ResNet50(weights='imagenet')

定义一个函数读取图片文件并处理。这里需要安装PLI的库。 pip install Pillow ,不然会报错

def load_image(img_path): img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) return x

加载一个图片文件,默认在当前路径寻找

x=load_image('zebra.jpg')

哈哈,开始预测了!激动人心啊

preds = model.predict(x)

执行速度很快,现在看看结果

print('Predicted:', decode_predictions(preds, top=3)[0])

Predicted: [(‘n02391049', ‘zebra', 0.99566585), (‘n02423022', ‘gazelle', 0.0010297714), (‘n01518878', ‘ostrich', 0.00067320856)]

准确率还是不错,后续还测试了一些飞机之类的图片,总体来讲马马虎虎!

是不是非常简单,确实很简单!

补充知识:模型训练loss先迅速下降后一直上升

loss函数走势如下:

检查代码没什么问题,分析应该是陷入了局部最优,把学习率调低一点就好了,从0.01调到了0.001

以上这篇使用Keras预训练好的模型进行目标类别预测详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章