caffe上跑自己的数据(Linux)

哎 先感谢!感谢网友:Vagrant  法师漂流 薛开宇

现在感觉 这转换不难,但是由于C++ Linux太烂,所以感觉难。

由于我生成的都是小样本,如果直接用imagenet的模型训练要放到到256*256,这样明显不靠谱,而且又是RGB图像,所以想到了整成32*32的图像,用cifar10来训练,一开始想直接怎么搞哪cifar10的模型,但是发现那太难了,搞不动。所以又想到了用imagenet的create来生成32*32的图像,感觉那不管怎么转换,最后生成的mdb文件的保存格式应该是一致的。好在确实是可以运行。

1、生成数据和label

假定你是在Windows下面生成的数据。创建文件夹train,然后根据数据的种类分别创建各个文件夹,然后把图像数据导入(我的是jpg图像文件)

                                     技术分享

创建文件夹val,把测试的图片全放在这个文件夹下,这个文件夹下面的测试图片不用分类

                                       技术分享

把train和val文件夹放在同一个文件夹下面

                技术分享

再生成train.txt和val.txt这两个label

技术分享     技术分享

 

 

我是用Matlab生成的数据,好像那个caffe不能识别汉字,所以图片文件名不能有汉字,可以用数字开头。请参考我的博客

Matlab修改文件的文件名 Matlab生成label 主要是label中文件名和label要有一个空格,可以观察那imagenet给出的txt,文件名和label之间只有1个空格。在train.txt中label文件名前面要加入文件夹,感觉这train.txt和val.txt这两个文本文件的文件名就是两个路径,对应着本文件夹下数据的文件名,这样理解就很好解释,train.txt文件中前面要加文件夹名。

2、把数据存放到Linux,修改配置文件

在caffe-master/data文件夹下面新建文件夹mydata,把刚才生成4个文件,两个文件夹,两个txt都拷到这个文件夹下面去。

在caffe-master/examples文件夹下面新建文件夹mytask,把caffe-master/examples/imagenet中的create_imagenet.sh拷贝到这个文件夹下面。打开这个文件,进行修改。

技术分享

如上是第5、6、7、9、10行要修改

技术分享

如上,为43、45、53、55行要修改,其实从这也能看出,45,55行就是生成的数据的文件夹名,其实里面的数据名称都是一样的。由于我是生成32*32的数据跑cifar10,所以改成了cifar10生成的文件夹名,至于后面的imagenet的相关求均值的就没操作了,不过现在才发现这cifar10的create里面其实也搞了均值操作,以后再补。运行这个修改了的create_imagenet.sh,就会在mytask文件夹下面生成数据

技术分享

就我来说,我把这两个生成的数据,拷贝到caffe-master/examples/cifar10文件下面,然后运行train_quick.sh,就能用cifar的quick模型跑自己的数据了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。