前一篇博文介绍了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中,要注意区分