caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建——redhat7.1和caffe的python接口编译

1.运行caffe图片分类器python接口

还是假设caffe的源码下载的路径为:/code,那么有这么个文件/code/caffe/python/classify.py,它是caffe团队提供的一个python实现的图片分类器的接口。运行该接口有两个必须参数,一个是你要操作的图片,另一个就是保存运行结果的文件。但是该接口需要简单修改才能运行,你不做任何修改的情况下运行的结果是这样的:

执行:
[root@localhost python]# python classify.py /root/Desktop/pic/banma.jpg result.npy #其中第一个参数是传入一张图片,第二个是计算结果的保存文件

运行结果是这样的,

均值有问题,/code/caffe/python/classify.py文件,第95行左右,修改如下,

[root@localhost python]# vim classify.py

修改之后执行是可以了,但是结果不会输出到屏幕上,而且结果的保存文件result.npy的内容也是不可读的,运行结果如下:

他只告诉说计算结果保存在result.npy(该文件也是在,/code/caffe/python/目录下),但是当你去读的时候发现是一堆乱码。于是,再次编辑/code/caffe/python/classify.py文件,把结果直接打印到屏幕上:

添加的内容就是两行####之间的内容。即:131~138行。修改之后再次运行:

[root@localhost python]# python classify.py /root/Desktop/pic/banma.jpg result.npy #其中第一个参数是传入一张图片,第二个是计算结果的保存文件

输出如下:

我传入的是一张斑马的图片,分类的结果是0.99501的概率是zebra,默认输出是概率最大的前五个,可以自定义。

2.运行caffe自带的例子web_demo

在目录/code/caffe/exampes下,有很多caffe给的例子,这里以web_demo下的例子为例,这个例子实现的是一个图片分类器的功能,比如你上传一张猫的图片,程序会给出整张图片是猫的可能性,或者是狗的可能性等等。

首先,通过阅读/code/caffe/exampes/web_demo/下的readme.me文件(建议都看一下该文件),可以知道需要先下载各种依赖,及需要的数据资源,如下:

[root@localhost ~]# cd /code/caffe
[root@localhost caffe]# pip install -r examples/web_demo/requirements.txt
[root@localhost caffe]# ./data/ilsvrc12/get_ilsvrc_aux.sh
[root@localhost caffe]# ./scripts/download_model_binary.py models/bvlc_reference_caffenet  #这个下载的最慢,40+分钟

全部下载完成后就可以运行了

[root@localhost ~]# python examples/web_demo/app.py

通过readme。md文件我们知道服务监听5000端口,打开浏览器输入:localhost:5000就会看到如下页面

可以看到caffe提供3种方法来验证该分类器,点击“Click for a Quick Example”,这个是caffe源码里自带的几张猫的图片,也可以添加一张图片的URL,甚至可以本地上传一张图片让caffe去识别,我上传一张斑马图片识别结果如下:

至此,对caffe有个基本的了解了,继续深入学习吧。

caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例的更多相关文章

  1. Caffe python利用classify.py实现对单通道(灰度图)的数据进行分类

    比如你在mnist的prototxt中定义图输入是单通道的,也就是channel=1,然后如果直接调用classify.py脚本来测试的话,是会报错,错误跟一下类似. Source param sha ...

  2. Ubuntu16.04下caffe CPU版的图片训练和测试

    一 数据准备 二.转换为lmdb格式 1.首先,在examples下面创建一个myfile的文件夹,来用存放配置文件和脚本文件.然后编写一个脚本create_filelist.sh,用来生成train ...

  3. 基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现

    摘要:本实验主要是以基于Caffe ResNet-50网络实现图片分类(仅推理)为例,学习如何在已经具备预训练模型的情况下,将该模型部署到昇腾AI处理器上进行推理. 本文分享自华为云社区<[CA ...

  4. JAVA实现带图片的列表——JList

    JList:显示对象列表并且允许用户选择一个或多个项的组件. JList的构造方法: 1.根据数组创建列表: JList(Object[] listData) 构造一个 JList,使其显示指定数组中 ...

  5. C# Qrcode生成二维码支持中文,带图片,带文字 2015-01-22 15:11 616人阅读 评论(1) 收藏

    1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...

  6. 实现打印级别且带图片的Excel 方案

    导出二维数据excel,其实很简单,使用cvs就可以了.但是如果导出格式复杂带样式还带图片的怎么办?客户的要求有时就是这么变态.呵呵.如果使用.net,微软提供的有库,使用php好像也有现成的有库.我 ...

  7. 自定义带图片和文字的ImageTextButton

    今天我们来讲一下有关自定义控件的问题,今天讲的这篇是从布局自定义开始的,难度不大,一看就明白,估计有的同学或者开发者看了说,这种方式多此一举,但是小编我不这么认为,多一种解决方式,就多一种举一反三的学 ...

  8. 【Android代码片段之六】Toast工具类(实现带图片的Toast消息提示)

    转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/6841266  作者:张燕广 实现的Toast工具类ToastUtil封装 ...

  9. 使用C#发送正文带图片邮件

    最近有个地方用到正文带图片的邮件发送功能,由于发送邮件调用的是web service,要求正文必须是string,而接收方要能看到图片,还不能单纯的添加一个图片地址链接,查阅了很多资料,基本上都是从头 ...

随机推荐

  1. jQuery Mobile入门

    转:http://www.cnblogs.com/linjiqin/archive/2011/07/17/2108896.html 简介:jQuery Mobile框架可以轻松的帮助我们实现非常好看的 ...

  2. 星型数据仓库olap工具kylin介绍

    星型数据仓库olap工具kylin介绍 数据仓库是目前企业级BI分析的重要平台,尤其在互联网公司,每天都会产生数以百G的日志,如何从这些日志中发现数据的规律很重要. 数据仓库是数据分析的重要工具, 每 ...

  3. 报错:MySQL check the manual that corresponds to your MySQL server version for the right syntax

    今天在向MySQL中插入数据时,报了标题的错误,因为我用的是session.save(object)方法,后台打印出的object和sql语句都没有问题,后来在网上查询,发现http://blog.c ...

  4. xv6的课本翻译之——附录B 系统启动器

    Appendix B 附录 B Figure B-1 The relationship between logical, linear, and physical addresses. 图B-1:逻辑 ...

  5. iOS常用开发技巧

    iOS开发过程中,总有那么一些个小问题让人纠结,它们不会让程序崩溃,但是会让人崩溃.除此之外,还将分享一些细节现在我通过自己的总结以及从其他地方的引用,来总结一下一些常见小问题. 本篇长期更新,多积累 ...

  6. float 对整形的取余运算

    取余是针对整形的,但是有时候一些特殊需求,我们需要 float 型对整形取下余数.比如,将角度化到 0- 360 范围内. 今天看到 lua 的实现方式: a % b == a - math.floo ...

  7. 谈iOS抓包:Mac下好用的HTTP/HTTPS抓包工具Charles

    在Mac下做开发,用Fiddler抓包由于离不开Windows比较痛苦,还好有Charles,到官网http://www.charlesproxy.com/可下载到最新版本(若不支持rMBP可拖到Re ...

  8. mysql 数据类型拾遗

    写这篇博客的原因是在建表的过程我建表时,在表名和字段名上没有注意,违背了团队的开发规范.我们团队规范是,名字上要能够体现对象的特征. 比如: 数据库要写db_dbname 表名要写tb_tbname ...

  9. iis6 服务器做301跳转返回状态码200解决方法。

    倘若你的配置和上图一样的话,在查询返回值是200的情况,你试着把你服务器上的安全狗或者防火墙,还有360网站卫士之类的安全软件停止试试,看是否能正常.

  10. linux下安装不同版本的jdk

    问题: 因为需要使用jmeter的插件,发现jmeter最新版apache-jmeter-3.0可用,但是其需要jdk1.7以上版本,而公司服务器上jdk均为1.6版本,于是在测试账号下安装多个版本j ...