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


Posted in Python onJune 27, 2020

前言

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

闲言少叙,开始写代码

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

from keras.applications.resnet50 import ResNet50
from keras.preprocessing import image
from keras.applications.resnet50 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])

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

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

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

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

loss函数走势如下:

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

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

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

Python 相关文章推荐
最基础的Python的socket编程入门教程
Apr 23 Python
解析Python中的二进制位运算符
May 13 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
Python制作词云图代码实例
Sep 09 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 Python
浅谈keras 模型用于预测时的注意事项
Jun 27 #Python
python suds访问webservice服务实现
Jun 26 #Python
解析Python 偏函数用法全方位实现
Jun 26 #Python
Python如何优雅删除字符列表空字符及None元素
Jun 25 #Python
使用pytorch实现论文中的unet网络
Jun 24 #Python
python连接mysql有哪些方法
Jun 24 #Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 #Python
You might like
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
jQuery CSS3相结合实现时钟插件
2016/01/08 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
前端路由&webpack基础配置详解
2019/06/10 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
javascript实现时钟动画
2020/12/03 Javascript
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
Python对wav文件的重采样实例
2020/02/25 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
python try...finally...的实现方法
2020/11/25 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
优秀团员个人事迹材料
2014/01/29 职场文书
信访工作汇报材料
2014/10/27 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
工作经历证明范本
2015/06/15 职场文书
教师节联欢会主持词
2015/07/04 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android