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. 架构师养成记--8.Queue

    一.ConcurrentLinkedQueue 是一个适合在高并发场景下,无锁,无界的,先进先出原则.不允许为null值,add().offer()加入元素,这两个方法没区别:pull().peek( ...

  2. python中__getattr__和__setattr__

    代码: #!/usr/bin/env python #! -*- coding:utf-8 -*- class A(object): def __setattr__(self, key, value) ...

  3. Steamroller

    FCC题目:对嵌套的数组进行扁平化处理.你必须考虑到不同层级的嵌套. 示例: steamroller([[["a"]], [["b"]]]) 应该返回 [&qu ...

  4. Android源码——Logger日志系统

    Android的Logger日志系统是基于内核中的Logger日志驱动程序实现的. 日志保存在内核空间中 缓冲区保存日志   分类方法:日志的类型  +   日志的输出量   日志类型:   main ...

  5. adb工具获取appPackage和appActivity

    1,手机连接电脑,打开手机调试功能,并运行待测试APP,终端执行: adb shell 2,接着,执行: dumpsys window windows | grep -E 'mFocusedApp' ...

  6. spring context上下文(应用上下文webApplicationContext)(转载)

    (此文转载:http://www.cnblogs.com/brolanda/p/4265597.html) 一.先说ServletContext javaee标准规定了,servlet容器需要在应用项 ...

  7. href,src,url 整理

    一.href 和 src 的定义及区别 href:Hypertext Reference(超文本引用),指定网络资源的位置,从而在当前元素或者当前文档和由当前属性定义的需要的锚点或资源之间定义一个链接 ...

  8. ORA-01438: 值大于为此列指定的允许精度

    Number的数据声明如下:表示        作用        说明Number(p, s)        声明一个定点数        p(precision)为精度,s(scale)表示小数点 ...

  9. 关于JSF中immediate属性的总结(三)

    Okay, when should I use the immediate attribute? If it isn't entirely clear yet, here's a summary, c ...

  10. KALI Linux problems & Study Red Hat | Ubuntu

    Problem When you ask some website with https head.you may met the problem  secure connection failed ...