[caffe] 数据制作和训练
2016-03-11 17:48
363 查看
[caffe] 数据制作和训练
在使用caffe时,我们希望使用自己的数据进行训练,以下给出如何制作自己的数据。所有的数据制作都是基于imagenet的。1.数据准备,我们需要一个train和valid文件夹,一个train.txt和val.txt(图片文件夹的位置可以任意,但是这两个txt文件的位置在data/mydata/目录下)
train和valid文件夹自然就存放着待训练的图片,train.txt和val.txt的数据格式如下
train_example/1.jpg 0 train_example/2.jpg 0 train_example/3.jpg 0 train_example/4.jpg 0 train_example/5.jpg 0 train_example/6.jpg 0 train_example/7.jpg 0 train_example/8.jpg 0 train_example/9.jpg 0
前边是图片路径,后便是label,注意label是从0开始的。
2. 在example目录下创建自己的文件夹mytask,将imagenet中所有的文件烤过来,然后进行修改。
create_imagenet.sh
//当前路径 EXAMPLE=/home/kongtao/caffe-master/examples/voc2007_test1 //存放train.txt和val.txt的路径,就是data/mydata DATA=/home/kongtao/caffe-master/data/voc2007_data1 //不变 TOOLS=/home/kongtao/caffe-master/build/tools //存放train和val图片文件夹的主目录(这里与txt文件中的目录合起来才是图片目录) TRAIN_DATA_ROOT=/home/kongtao/learn/cnn_learn/VOC2007_research/VOCdevkit/ VAL_DATA_ROOT=/home/kongtao/learn/cnn_learn/VOC2007_research/VOCdevkit/
运行create_imagenet.sh,生成两个数据文件lmdb
make_image_mean.sh 也是修改相应的路径
最后需要修改的是model中prototxt文件,只需要修改路径
运行
./build/tools/caffe train --solver=models/bvlc_reference_caffenet/solver.prototxt
这样就可以了。
以上完成了一个数据文件的创建和训练的过程,对于我们来说,其实网络架构显得更重要,因此不仅仅是调通,更重要的是调整网络架构和改进,这也是最难得部分。
多chanel,需要对数据进行提前白化
import numpy as np import caffe import lmdb # obviously load your own inputs here -- this is just by way of example # to show the data can have any channel dimension # as the dimensions are N x K x H x W inputs = np.zeros((10, 5, 227, 227)) in_db = lmdb.open('input-lmdb', map_size=int(1e12)) with in_db.begin(write=True) as in_txn: for in_idx, in_ in enumerate(inputs): in_dat = caffe.io.array_to_datum(in_) in_txn.put('{:0>10d}'.format(in_idx), im_dat.SerializeToString()) in_db.close()
记录一下别人制作的东东 http://deepdish.io/2015/04/28/creating-lmdb-in-python/ 还有一个 http://blog.csdn.net/ayst123/article/details/44077903 原创文章,转载请注明出处,谢谢! http://www.cnblogs.com/taokongcn/p/4341371.html
from:http://www.cnblogs.com/taokongcn/p/4341371.html
相关文章推荐
- web session详解
- json转MAp对象
- js事件跨浏览器解决问题的学习与总结
- PJSIP---可以视频通话的库
- Node.js最新技术栈之Promise篇
- 根据你的目的和意图来选择按钮样式
- java poi excel node
- JSP总结-会话跟踪全解
- 【Egret】 3d 服务器配置
- HTML超连接
- json处理四部曲之第一曲:利用json-lib-xxx.jar处理json
- Perfect ScrollBar插件使用方法
- mysql safe 解除语句
- JS封装类或对象的最佳方案
- javascript深入理解js闭包
- NodeJS学习笔记
- 上海javascript的面试题
- Json对象和字符串互相转换
- SVAC的重要Feature
- 二维码插件jquery.qrcode.js的使用示例