使用Keras预训练好的模型进行目标类别预测详解
前言
最近开始学习深度学习相关的内容,各种书籍、教程下来到目前也有了一些基本的理解。参考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函数走势如下:
检查代码没什么问题,分析应该是陷入了局部最优,把学习率调低一点就好了,从0.01调到了0.001
以上这篇使用Keras预训练好的模型进行目标类别预测详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Keras 加载已经训练好的模型进行预测操作
使用Keras训练好的模型用来直接进行预测,这个时候我们该怎么做呢?[我这里使用的就是一个图片分类网络] 现在让我来说说怎么样使用已经训练好的模型来进行预测判定把 首先,我们已经又有了model模型,这个模型被保存为model.h5文件 然后我们需要在代码里面进行加载 model = load_model("model.h5") 假设我们自己已经写好了一个load_data函数[load_data最好是返回已经通过了把图片转成numpy的data,以及图片对应的label] 然后我们先
-
使用Keras预训练模型ResNet50进行图像分类方式
Keras提供了一些用ImageNet训练过的模型:Xception,VGG16,VGG19,ResNet50,InceptionV3.在使用这些模型的时候,有一个参数include_top表示是否包含模型顶部的全连接层,如果包含,则可以将图像分为ImageNet中的1000类,如果不包含,则可以利用这些参数来做一些定制的事情. 在运行时自动下载有可能会失败,需要去网站中手动下载,放在"~/.keras/models/"中,使用WinPython则在"settings/.ke
-
使用keras内置的模型进行图片预测实例
keras 模块里面为我们提供了一个预训练好的模型,也就是开箱即可使用的图像识别模型 趁着国庆假期有时间我们就来看看这个预训练模型如何使用吧 可用的模型有哪些? 根据官方文档目前可用的模型大概有如下几个 1.VGG16 2.VGG19 3.ResNet50 4.InceptionResNetV2 5.InceptionV3 它们都被集成到了keras.applications 中 模型文件从哪来 当我们使用了这几个模型时,keras就会去自动下载这些已经训练好的模型保存到我们本机上面 模型文件会
-
利用keras加载训练好的.H5文件,并实现预测图片
我就废话不多说了,直接上代码吧! import matplotlib matplotlib.use('Agg') import os from keras.models import load_model import numpy as np from PIL import Image import cv2 #加载模型h5文件 model = load_model("C:\\python\\python3_projects\\cat_dog\\cats_dogs_fifty_thousand.h
-
Keras使用ImageNet上预训练的模型方式
我就废话不多说了,大家还是直接看代码吧! import keras import numpy as np from keras.applications import vgg16, inception_v3, resnet50, mobilenet #Load the VGG model vgg_model = vgg16.VGG16(weights='imagenet') #Load the Inception_V3 model inception_model = inception_v3.I
-
使用Keras预训练好的模型进行目标类别预测详解
前言 最近开始学习深度学习相关的内容,各种书籍.教程下来到目前也有了一些基本的理解.参考Keras的官方文档自己做一个使用application的小例子,能够对图片进行识别,并给出可能性最大的分类. 闲言少叙,开始写代码 环境搭建相关就此省去,网上非常多.我觉得没啥难度 from keras.applications.resnet50 import ResNet50 from keras.preprocessing import image from keras.applications.res
-
Keras预训练的ImageNet模型实现分类操作
本文主要介绍通过预训练的ImageNet模型实现图像分类,主要使用到的网络结构有:VGG16.InceptionV3.ResNet50.MobileNet. 代码: import keras import numpy as np from keras.applications import vgg16, inception_v3, resnet50, mobilenet # 加载模型 vgg_model = vgg16.VGG16(weights='imagenet') inception_mo
-
keras读取训练好的模型参数并把参数赋值给其它模型详解
介绍 本博文中的代码,实现的是加载训练好的模型model_halcon_resenet.h5,并把该模型的参数赋值给两个不同的新的model. 函数式模型 官网上给出的调用一个训练好模型,并输出任意层的feature. model = Model(inputs=base_model.input, outputs=base_model.get_layer('block4_pool').output) 但是这有一个问题,就是新的model,如果输入inputs和训练好的model的inputs大小不
-
darknet框架中YOLOv3对数据集进行训练和预测详解
目录 1. 下载darknet源码 2. 修改darknet的Makefile文件 3. 准备数据集 4. 修改voc_label.py 5. 下载预训练模型 6. 修改./darknet/cfg/voc.data文件 7. 修改./darknet/data/voc.name文件 8. 修改./darknet/cfg/yolov3-voc.cfg文件 9. 开始训练 10.训练终止后继续训练方法 1. 下载darknet源码 在命令窗口(terminal)中进入你想存放darknet源码的路径,
-
tensorflow的ckpt及pb模型持久化方式及转化详解
使用tensorflow训练模型的时候,模型持久化对我们来说非常重要. 如果我们的模型比较复杂,需要的数据比较多,那么在模型的训练时间会耗时很长.如果在训练过程中出现了模型不可预期的错误,导致训练意外终止,那么我们将会前功尽弃.为了解决这一问题,我们可以使用模型持久化(保存为ckpt文件格式)来保存我们在训练过程中的临时数据.. 如果我们训练出的模型需要提供给用户做离线预测,那么我们只需要完成前向传播过程.这个时候我们就可以使用模型持久化(保存为pb文件格式)来只保存前向传播过程中的变量并将变量
-
python回归分析逻辑斯蒂模型之多分类任务详解
目录 逻辑斯蒂回归模型多分类任务 1.ovr策略 2.one vs one策略 3.softmax策略 逻辑斯蒂回归模型多分类案例实现 逻辑斯蒂回归模型多分类任务 上节中,我们使用逻辑斯蒂回归完成了二分类任务,针对多分类任务,我们可以采用以下措施,进行分类. 我们以三分类任务为例,类别分别为a,b,c. 1.ovr策略 我们可以训练a类别,非a类别的分类器,确认未来的样本是否为a类: 同理,可以训练b类别,非b类别的分类器,确认未来的样本是否为b类: 同理,可以训练c类别,非c类别的分类器,确认
-
Tensorflow加载模型实现图像分类识别流程详解
目录 前言 正文 VGG19网络介绍 总结 前言 深度学习框架在市面上有很多.比如Theano.Caffe.CNTK.MXnet .Tensorflow等.今天讲解的就是主角Tensorflow.Tensorflow的前身是Google大脑项目的一个分布式机器学习训练框架,它是一个十分基础且集成度很高的系统,它的目标就是为研究超大型规模的视觉项目,后面延申到各个领域.Tensorflow 在2015年正式开源,开源的一个月内就收获到1w多的starts,这足以说明Tensorflow的优越性以及
-
Python实现随机森林RF模型超参数的优化详解
目录 1 代码分段讲解 1.1 数据与模型准备 1.2 超参数范围给定 1.3 超参数随机匹配择优 1.4 超参数遍历匹配择优 1.5 模型运行与精度评定 2 完整代码 本文介绍基于Python的随机森林(Random Forest,RF)回归代码,以及模型超参数(包括决策树个数与最大深度.最小分离样本数.最小叶子节点样本数.最大分离特征数等)自动优化的代码. 本文是在上一篇文章Python实现随机森林RF并对比自变量的重要性的基础上完成的,因此本次仅对随机森林模型超参数自动择优部分的代码加以详
-
opencv调用yolov3模型深度学习目标检测实例详解
目录 引言 建立相关目录 代码详解 附源代码 引言 opencv调用yolov3模型进行深度学习目标检测,以实例进行代码详解 对于yolo v3已经训练好的模型,opencv提供了加载相关文件,进行图片检测的类dnn. 下面对怎么通过opencv调用yolov3模型进行目标检测方法进行详解,付源代码 建立相关目录 在训练结果backup文件夹下,找到模型权重文件,拷到win的工程文件夹下 在cfg文件夹下,找到模型配置文件,yolov3-voc.cfg拷到win的工程文件夹下 在data文件夹下
-
Python函数参数匹配模型通用规则keyword-only参数详解
Python3对函数参数的排序规则更加通用化了,即Python3 keyword-only参数,该参数即为必须只按照关键字传递而不会有一个位置参数来填充的参数.该规则在处理人一多个参数是很有用的. keyword-only kword_only(1, 2, 3, c=4) print('-' * 20) kword_only(a=1, c=3) 示例结果: 1 (2, 3) 4 -------------------- 1 () 3 在 *args 之后的参数都需要在调用中使用关键字的方式传递,
随机推荐
- jquery隐藏标签和显示标签的实例
- 理解Javascript_03_javascript全局观
- javascript 数组操作实用技巧
- Codeigniter出现错误提示Error with CACHE directory的解决方案
- 简单谈谈javascript Date类型
- python多线程threading.Lock锁用法实例
- C#实现rabbitmq 延迟队列功能实例代码
- Android自定义View实现简单的圆形Progress效果
- jQuery编写网页版2048小游戏
- asp简单生成静态的方法(模板标签替换)
- js删除数组元素、清空数组的简单方法(必看)
- JavaScript中链式调用之研习
- movie not found的解决办法(iis)
- 在dos(CMD)下建立VPN的方法
- Android自定义View——扇形统计图的实现代码
- Android中创建一个透明的进度对话框实例
- C#设置输入法实例分析
- python在OpenCV里实现投影变换效果
- 用php定义一个数组最简单的方法
- Linux下的crontab定时执行任务命令详解