Caffe - 利用classify.py完成分类任务,输出预测类别和各类概率
2017-05-02 00:37
393 查看
Caffe提供了一个分类预测的Demo — claasify.py,位于/caffe/python/classify.py。
其原始输出是二进制文件,不容易直观地看到结果。
近期由于项目需要,我对这个脚本做了一些修改:
将分类预测标签输出到文本文件,同时输出图片路径、图片真实标签,以及Softmax层的输出(如果在proto配置中去掉Softmax层的话,这里就会输出全连接层的原始数据,可以用来做后续的处理)。
脚本支持图片的批处理:
如果输入路径是一个文件夹的话,会自动处理该文件夹下的所有图片(但子文件夹下的图片不会被处理)。
源码下载 http://download.csdn.net/detail/u010391437/9830722
欢迎交流讨论。
主要包括四部分数据:
第一个域是图片路径;
第二个域是图片的真实标签;
第三个域是分类预测的标签;
最后的一串浮点数是Softmax层的输出,可以理解为该图片属于各个标签的概率;
每一张图片的数据占一行,以
其中:
通过
由于图片路径里包含了该图片的原始标签信息,所以这里的原始标签我是直接通过分割图片路径的字符串得到的。
其原始输出是二进制文件,不容易直观地看到结果。
近期由于项目需要,我对这个脚本做了一些修改:
将分类预测标签输出到文本文件,同时输出图片路径、图片真实标签,以及Softmax层的输出(如果在proto配置中去掉Softmax层的话,这里就会输出全连接层的原始数据,可以用来做后续的处理)。
脚本支持图片的批处理:
如果输入路径是一个文件夹的话,会自动处理该文件夹下的所有图片(但子文件夹下的图片不会被处理)。
源码下载 http://download.csdn.net/detail/u010391437/9830722
欢迎交流讨论。
1. 输出文件的数据格式
如下:主要包括四部分数据:
第一个域是图片路径;
第二个域是图片的真实标签;
第三个域是分类预测的标签;
最后的一串浮点数是Softmax层的输出,可以理解为该图片属于各个标签的概率;
每一张图片的数据占一行,以
'\n'结尾。
2. 对源码的主要修改
如下:其中:
predictions为最后一层的网络输出结果,这里是Softmax层的输出数据,是一个二维数组(矩阵);
通过
predictions[pic_index].argsort()[-1]可以得到输出最大的标签,即为预测标签;
args.test是我新增的一个命令行参数,用来标识当前处理的文件夹是训练文件夹train还是测试文件夹test;
由于图片路径里包含了该图片的原始标签信息,所以这里的原始标签我是直接通过分割图片路径的字符串得到的。
相关文章推荐
- caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例
- Caffe python利用classify.py实现对单通道(灰度图)的数据进行分类
- 利用python进行数据处理——之完成任务分类
- Caffe学习:pycaffe利用caffemodel进行分类
- Caffe学习:pycaffe利用caffemodel进行分类
- Caffe学习:pycaffe利用caffemodel进行分类=>批处理
- 在分类及预测任务中对高维类别(category)变量的预处理方法
- Caffe学习:pycaffe利用caffemodel进行分类(2)
- Caffe学习:pycaffe利用caffemodel进行分类=>裁剪图片
- caffe 利用Python API做分类预测,以及特征的可视化
- Caffe学习:pycaffe利用caffemodel进行分类=>批处理
- caffe下py-faster-rcnn利用vgg16训练及预测
- Caffe学习:pycaffe利用caffemodel进行分类=>裁剪图片
- 第九周C++任务四。建立一个二维数组类Douary,完成矩阵的输入、输出、加、减、相等判断等操作
- 利用采样器实现mapreduce任务输出全排序
- svm 预测标签的概率输出
- 2015年C++第三周,任务二:输入几个学生的成绩,用空格隔开,利用容器vector输出成绩,并显示各个等级的数量。
- 利用训练好的Caffe网络得到输入图像的分类
- [4月25日的脚本] 在Office 365 Exchange Online中按类别给任务列表项分类
- 第九周实验报告任务4 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。