caffe随记(六)---tools工具举例

经过前面几篇博文的介绍,我们已经对caffe有了个大概的了解,知道它的数据结构,而且也尝试了caffe的Hello World---mnist例程。

前一篇博文介绍了tools工具中caffe.bin的用法,索性我这一篇继续来看一看tools其他工具

可以看到有很多可执行文件,我就举几个常用的例子

1、compute_image_mean.bin(计算图像平均值)

一般在数据读取层的Transform阶段,需要去均值操作。均值文件一般需要用原始数据计算得到,caffe提供了计算均值的工具

返回根目录下执行 ./build/tools/ compute_image_mean.bin

显示这个工具的用法:

compute_image_mean   [参数]  INPUT_DB [输出文件夹]

参数中就是选择输入数据的类型leveldb 还是lmdb,默认为lmdb

2、conver_imageset.bin(图像数据转换成db(leveldb/lmdb)文件)

caffe数据输入层的数据一般都以LEVELDB或者LMDB输入,所以要把原始数据进行转换,caffe中也提供了这样的工具

根目录下输入:./build/tools/compute_image_mean.bin

显示其用法

 convert_imageset      [FLAGS]        ROOTFOLDER/ LISTFILE      DB_NAME

convert_imageset      -此工具的名字

[FLAGS]                   -参数组,详细如下:

-backend 选择lmdb或者leveldb格式来保存结果,默认为lmdb

-check_size (当这个选项打开时,要检测输入图像是否拥有同样大小的尺寸,默认为false)

-encode_type(可选:将图片编码为哪一个格式,从cpp中来看,如果这一个不设置的话,它其实可以自己去根据图片的后缀名来识别图片的类型)

-encoded(是否将原图片编码放入最终的数据中,默认为false,当这个选项打开,被编码的图片就会被存储进datum中)

-gray(但这个选项打开,表示图片都是灰度图)

-resize_height(重置图片高度为:xx,默认为0)

-resize_width(重置图片宽度为:xx,默认为0)

-shuffle(随机的打乱图片顺序和标签,默认为false)

 ROOTFOLDER/        - 图片存放的绝对路径,从linux系统根目录开始

LISTFILE                    -图片文件列表清单,一般为一个txt文件,一行一张图片

DB_NAME                  - 最终生成的db文件存放目录

然后cpp中还提到一句这个工具的正常运行要依赖于opencv,有兴趣的同学可以去看看cpp

再推荐一篇博文:http://www.cnblogs.com/denny402/p/5082341.html

3、特征提取

该工具需要一个训练好的网络和一个数据输入层,运行后可得到相应数据通过网络某个中间层产生的特征图并保存到磁盘

有点长,我打出来
extract_features \                           //这个程序的名称
pretrained_net_param \                       //预训练的网络, **.caffemodel
feature_extraction_proto_file \              //网络描述文件,**.prototxt
extract_feature_blob_name1 [,name2,...] \    // 需要提取的Blob名字,可以写多个用逗号分开
save_feature_dataset_name1[,name2,...] \     //保存特征名字
num_mini_batches \                           //做特征提取的数据批量数目
db_type \                                    //输入数据的格式,lmdb或者leveldb
[CPU/GPU] \                                  //gpu还是cpu模式
[DEVICE_ID=0] \                              // 选择gpu设备号

基本上常用的就是这几个,还有一些工具已经弃用,而融入到其他地方去了,比如下面两个都被Deprecated(弃用)了

大家想要了解tools中工具的一些更为细节的东西,可以去 caffe目录下的tools中寻找cpp源码,

这里我们看的可执行文件是在caffe的build目录下的tools中,要注意区分

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

模型训练和部署-Iris数据集

在前面的文章Fayson介绍了关于《CDSW1.4的新功能》、《Hadoop之上的模型训练 - CDSW1.4新功能模块》、《CDSW1.4的Experimen...

1952
来自专栏AI研习社

Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3

该库 fork 自 @github/marvis 的 pytorch-yolo2,不过作者没有直接修改或者更新 marvis 的源文件,因为很多文件已经改了文件...

1933
来自专栏人工智障

visdom的安装及在pytorch下损失函数的可视化应用

更新:新版visdom0.1.7安装方式为:conda install -c srivasv visdom 

6230
来自专栏Hongten

自己写了一个展开和收起的js效果...分享给大家

3.当自己处于全部显示的时候,点击其他的展开是,自己内容隐藏,原来的"收起"变为"展开"

4212
来自专栏xingoo, 一个梦想做发明家的程序员

汇编语言 手记4

简单的汇编指令 ? CPU执行后,寄存器中的数据改变为如下: ? CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。 ...

1955
来自专栏专知

基于网页的图像标注工具——imglab

【导读】imglab是一种基于Web的工具,用于标记可用于训练dlib或其他对象检测器的对象的图像。

1.2K3
来自专栏小L的魔法馆

C++定义一个简单的Computer类

5046
来自专栏GAN&CV

深度学习优化器算法详解:梯度更新规则+缺点+如何选择

转载自:https://mp.weixin.qq.com/s/RZc1PUgZs1BqRPeyBmTELA

3582
来自专栏xingoo, 一个梦想做发明家的程序员

汇编语言 手记7

CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址; 在8086PC中,内存地址由段地址和偏移地址组成。 8086CPU中有一个DS寄存器,通常用来存...

2169
来自专栏debugeeker的专栏

《coredump问题原理探究》windows版9.2节dll hell导致的虚函数偏移

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

891

扫码关注云+社区

领取腾讯云代金券