想请问一下作者,如何获取不同图像的fc7层特征呢,想用这个特征来训练分类器。
将不同的图像组成一个文件列表,用image_data层,具体见get_features.cpp文件
你好,看了cpp文件,资质愚钝还是没能完全看懂命令参数,get_features命令需要六个参数,依次是prototxt文件、caffemodel文件、特征层索引参数(fc7)还有三个是什么参数呢,没有看明白,那个file_list.txt应该放在哪里呢,还有最后的matlab函数sc_load是做什么的呢,里面的参数filename是什么含义呢。烦请作者有时间解答一下,谢谢啦。
在 2015-08-10 21:43:23,"shicai" [email protected] 写道:
将不同的图像组成一个文件列表,用image_data层,具体见get_features.cpp文件
— Reply to this email directly or view it on GitHub.
我按照参数的顺序,依次解释下: [0] get_features.exe,文件名,第一个参数 [1] feat.prototxt,注意file_list.txt在这里的image data layer用到,注意看cpp文件的第22行 [2] caffemodel [3] 6这里是迭代次数的意思,这个数字乘以cpp文件的第23行的batch size,必须等于file_list.txt中图像总数 [4] conv1,fc7,prob,argmax 这里是需要提取特征的层的名字,在feat.prototxt中找,用英文逗号分隔,注意不要有空格 [5] conv1.dat,fc7.dat,prob.dat,argmax.dat 对应上面特征,是将每层特征保存的文件名字,同样逗号分隔,不要空格 [6] GPU 这里有2个选项:GPU或者CPU模式 [7] 0 如果用GPU模式,指定用哪个gpu,从0开始计数
其他:matlab函数sc_load是用来读取特征文件的,比如你将prob层特征存为prob.dat,用sc_load读取就可以了:prob = sc_load('prob.dat');
又仔细读了代码成功实现了特征提取,刚才还是我自己看的不够仔细,感谢作者耐心的指导!
请问一下 这个是在windows下还是在linux也能用呢?
@mengfanr 取决于你的caffe,你若是在windows和linux下都编译好caffe,那就都能用
如果我只提取最后一层的特征,能否把参数[4]和[5]直接去掉呢?不写提取哪一层的特征是不是默认就是最后一层
@xxlylf 不可以,提取特征必须指定那一层的名字。不写的话,不会提取任何特征。
想请问一下作者 这个输出的dat格式的特征数据,有没有c++工具能读取并把它写成libsvm可以读取的格式呢?
@howard327 数据存储格式是行、列、特征,所以直接用fread读入float就可以了
好的,知道啦,太感谢啦。
发自我的 iPhone
在 2015年10月26日,9:55,shicai [email protected] 写道:
@howard327 数据存储格式是行、列、特征,所以直接用fread读入float就可以了
― Reply to this email directly or view it on GitHub.
您好,请问按照您的方法操作,出现这个错误是什么原因呢?
@xxlylf the number of rows and cols doesn't match the shape of data. please double check the value of rows and cols.