一个小例子带你轻松Keras图像分类入门

2018 年 1 月 24 日 云栖社区

云栖君导读: 本文通过一个具体的小例子带你入门Keras图像分类,希望各位能够通过这篇文章能够学习到一些图像分类的基本操作。


这篇文章主要介绍一些在Keras中需要的常见操作。这些常见操作包括:如何保存模型并在稍后使用它们进行预测,显示数据集中的图像以及从系统中加载图像并预测其类别。



训练模型是一个循序渐进的过程,十分缓慢。但是,在这里,我们需要训练我们的模型一次,然后保存,这样我们就可以随时加载,并用它来预测新的图像。Keras将模型保存为.h5格式,如果你在作者发布的第一个教程中已经安装过h5py,请跳过,如果没有,请运行:



我们还需要matplotlib来形象化我们的图像,因此,运行:



这是第一个小例子的代码:



想保存模型,需要在model.fit()之后添加:



推理是指使用我们的模型预测新图像的过程。在你的代码中,注释上:model.fit

用以替换以下的内容:model.load_weights("mnistmodel.h5")


我们的代码现在看起来像这样:



我们在这里所做的是从保存的模型文件中加载出模型的参数,评估函数在测试数据集上运行预测,并给出预测的准确性。


截止到目前,以上演示了如何保存模型并使用它们进行预测。真正需要解决的问题是加载出一个特定的图像,并确定它是属于什么类型的。


第一步是添加下面的代码来获得测试中的特定图像的预测:



在这里,我们只是选择一个随机图像,在这种情况下,在测试集的索引130处,我们创建一个平整的副本,重新整形:(1,784)。


我们将这个副本加入到我们的模型中,然后我们获得预测并打印出来。


在代码中注释掉model.evaluate,添加上面的代码并运行它。


你将会输出  class :6


现在我们已经预测了,接下来我们就需要使用matplolib来显示图像及其预测的类型:



这些操作是非常必要的,因为使用matplotlib将会非常直观的显示我们的预测结果是否正确。


这样我们的代码就会变成:



运行这段代码,你的输出应该是下面这张图片,这意味着我们已经建立了一个基本的数字识别系统,你也可以尝试不同的测试图像索引,看看将得到些什么。



但是,如果想引入测试集中没有的图像,那么你需要将以下图像保存到你的系统中,并将其复制到python文件所在的目录中。


运行下面的代码:



你可能会注意到我们使用了一些新的东西,首先我们从Keras.preprocessing中导入了图像,然后加了:



在第一行中,我们从磁盘加载图像,并指定它应该调整大小为28*28*1,请记住,这是原始mnist图像的尺寸,它的作用是让我们保持图像识别过程中的稳定。接下来,我们将图像转换为一个像素数组,这才是我们真正要识别的。运行它并自己检查结果,预测其结果是否是3。



-END-

云栖社区

ID:yunqiinsight

云计算丨互联网架构丨大数据丨机器学习丨运维



点此阅读详细内容!

登录查看更多
4

相关内容

专知会员服务
54+阅读 · 2020年7月4日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
专知会员服务
136+阅读 · 2020年3月1日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
初学者的 Keras:实现卷积神经网络
Python程序员
24+阅读 · 2019年9月8日
基于TensorFlow和Keras的图像识别
Python程序员
16+阅读 · 2019年6月24日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
TensorFlow图像分类教程
云栖社区
9+阅读 · 2017年12月29日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
实战|利用卷积神经网络处理CIFAR图像分类
全球人工智能
4+阅读 · 2017年7月22日
Deep Co-Training for Semi-Supervised Image Segmentation
Arxiv
7+阅读 · 2019年4月8日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Arxiv
4+阅读 · 2018年9月25日
Arxiv
5+阅读 · 2018年5月1日
VIP会员
相关VIP内容
专知会员服务
54+阅读 · 2020年7月4日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【资源】100+本免费数据科学书
专知会员服务
105+阅读 · 2020年3月17日
《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
专知会员服务
136+阅读 · 2020年3月1日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
相关资讯
初学者的 Keras:实现卷积神经网络
Python程序员
24+阅读 · 2019年9月8日
基于TensorFlow和Keras的图像识别
Python程序员
16+阅读 · 2019年6月24日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
TensorFlow图像分类教程
云栖社区
9+阅读 · 2017年12月29日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
实战|利用卷积神经网络处理CIFAR图像分类
全球人工智能
4+阅读 · 2017年7月22日
Top
微信扫码咨询专知VIP会员