Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

想请问一下作者,如何获取不同图像的fc7层特征呢,想用这个特征来训练分类器。 #1

Open
ghost opened this issue Aug 10, 2015 · 13 comments

Comments

@ghost
Copy link

ghost commented Aug 10, 2015

No description provided.

@shicai
Copy link
Owner

shicai commented Aug 10, 2015

将不同的图像组成一个文件列表,用image_data层,具体见get_features.cpp文件

@ghost
Copy link
Author

ghost commented Aug 11, 2015

你好,看了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.

@shicai
Copy link
Owner

shicai commented Aug 11, 2015

我按照参数的顺序,依次解释下:
[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');

@ghost
Copy link
Author

ghost commented Aug 11, 2015

又仔细读了代码成功实现了特征提取,刚才还是我自己看的不够仔细,感谢作者耐心的指导!

@mengfanr
Copy link

请问一下 这个是在windows下还是在linux也能用呢?

@shicai
Copy link
Owner

shicai commented Oct 10, 2015

@mengfanr 取决于你的caffe,你若是在windows和linux下都编译好caffe,那就都能用

@GengCauWong
Copy link

如果我只提取最后一层的特征,能否把参数[4]和[5]直接去掉呢?不写提取哪一层的特征是不是默认就是最后一层

@shicai
Copy link
Owner

shicai commented Oct 22, 2015

@xxlylf 不可以,提取特征必须指定那一层的名字。不写的话,不会提取任何特征。

@ghost
Copy link
Author

ghost commented Oct 25, 2015

想请问一下作者 这个输出的dat格式的特征数据,有没有c++工具能读取并把它写成libsvm可以读取的格式呢?

@shicai
Copy link
Owner

shicai commented Oct 26, 2015

@howard327 数据存储格式是行、列、特征,所以直接用fread读入float就可以了

@ghost
Copy link
Author

ghost commented Oct 26, 2015

好的,知道啦,太感谢啦。

发自我的 iPhone

在 2015年10月26日,9:55,shicai [email protected] 写道:

@howard327 数据存储格式是行、列、特征,所以直接用fread读入float就可以了


Reply to this email directly or view it on GitHub.

@GengCauWong
Copy link

您好,请问按照您的方法操作,出现这个错误是什么原因呢?default

@shicai
Copy link
Owner

shicai commented Oct 30, 2015

@xxlylf the number of rows and cols doesn't match the shape of data. please double check the value of rows and cols.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants