使⽤Keras预训练好的模型进⾏⽬标类别预测详解
前⾔
最近开始学习深度学习相关的内容,各种书籍、教程下来到⽬前也有了⼀些基本的理解。参考Keras的官⽅⽂档⾃⼰做⼀个使⽤application的⼩例⼦,能够对图⽚进⾏识别,并给出可能性最⼤的分类。
闲⾔少叙,开始写代码
环境搭建相关就此省去,⽹上⾮常多。我觉得没啥难度
from snet50 import ResNet50
from keras.preprocessing import image
from snet50 import preprocess_input, decode_predictions
import 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])
django怎么学Predicted: [(‘n02391049', ‘zebra', 0.99566585), (‘n02423022', ‘gazelle', 0.0010297714), (‘n01518878', ‘ostrich',
0.00067320856)]
准确率还是不错,后续还测试了⼀些飞机之类的图⽚,总体来讲马马虎虎!
是不是⾮常简单,确实很简单!
补充知识:模型训练loss先迅速下降后⼀直上升
loss函数⾛势如下:
检查代码没什么问题,分析应该是陷⼊了局部最优,把学习率调低⼀点就好了,从0.01调到了0.001
以上这篇使⽤Keras预训练好的模型进⾏⽬标类别预测详解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。