caffe linux 怎么跑自己的数据
2016-12-20 · 知道合伙人数码行家
关注
展开全部
转:http://www.bubuko.com/infodetail-792194.html
现在感觉 这转换不难,但是由于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模型跑自己的数据了。
现在感觉 这转换不难,但是由于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模型跑自己的数据了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询