您的位置:首页 > Web前端

使用caffe训练自己的数据

2016-06-08 17:40 337 查看
这里先介绍采用image-net来训练自己的数据:

1 准备数据:

    1.1 训练数据准备:

        假设放在:

            ~/Data/train

    1.2 确认数据准备:

        假设放在:

            ~/Data/val

    1.3 准备两个txt文档:

        1.3.1 准备train.txt:

            内容为:训练数据图片名称+标签

            格式样例:

                0001.jpg 1

                0002.jpg 2

        1.3.2 准备val.txt:

            内容为:确认数据图片名称+标签

            格式样例:

                0001.jpg 1

                0002.jpg 2

        假设这两个文件均放在:

            ~/Data

    这里将数据最好放在自己的用户组里面,放在别的用户组,

    在调用image-net的时候可能会涉及到权限问题导致运行失败。

2 修改creat_imagenet.sh参数:

    2.1 修改所创建数据的存储位置

        EXAMPLE=example/imagenet

        改为:自己想存放的位置。(不建议修改,不然还需要做相应的修改,挺麻烦的)

        我这里没有做修改,所以在执行creat_imagenet.sh之后,

        在~/XXX/caffe/example/imagenet的目录下产生了两个文件:

            ilsvrc12_train_lmdb  ilsvrc12_val_lmdb

    2.2 修改txt存放的目录

        DATA=data/ilsvrc12

        改为:DATA=/home/XXX/DATA

    2.3 修改训练数据的目录

        TRAIN_DATA_ROOT=/path/to/imagenet/train/

        改为:TRAIN_DATA_ROOT=/home/YYY/Data/train/

    2.4 修改确认数据的目录

        VAL_DATA_ROOT=/path/to/imagenet/val/

        改为:VAL_DATA_ROOT=/home/YYY/Data/val/

3 回到caffe的根目录执行creat_imagenet.sh:

    ./example/imagenet/creat_imagenet.sh

    也就是根据自己的数据已经产生了两个数据,存放在caffe/example/imagenet中:

        ilsvrc12_train_lmdb  ilsvrc12_val_lmdb

4 在caffe根目录中执行make_imagenet_mean.sh:

    4.1 修改EXAPLE参数:

        如果前面做了修改,那么这里做相应的修改

    4.2 修改DATA参数:

        这个参数是指明所求的均值存放的位置。(不建议修改,不然还需要做相应的修改,挺麻烦的)

        我这里不做修改,也就是将会在caffe/data/ilsvrc12中产生:

            imagenet_mean.binaryproto

    4.3 回到caffe的根目录执行make_imagenet_mean.sh:

        ./example/imagenet/make_imagenet_mean.sh

        执行完了之后,将会在caffe/data/ilsvrc12中看到一个执行结果:

            imagenet_mean.binaryproto

5 进行训练:

    5.1 修改所创建数据的目录:

        如果前面2.1中做了修改,

        那么在目录caffe/models/bvlc_reference_caffenet中

        需要修改train_val.prototxt中相应地方。

    5.2 修改均值结果目录:

        如果前面4.2中做了修改,

        那么在目录caffe/models/bvlc_reference_caffenet中

        需要修改train_val.prototxt中相应地方。

    5.3 模型参数修改:

        请参考:http://blog.csdn.net/hmxiaobao/article/details/51443794

    5.4 回到caffe根目录进行训练:

        ./example/imagenet/train_caffenet.sh

        因为很多参数我都没有修改,所以迭代了450000次。

        更详细的描述可以参考:

          
 http://blog.csdn.net//chenriwei2/article/details/38735891

        每迭代10000次的时候,会保存一个类似运行环境一样的东西吧。

        如果中途突然断电之类的,终止了程序运行,那么可以直接运行:

            ./example/imagenet/resume_training.sh

        训练好的模型存放在caffe/models/bvlc_reference_caffenet中。

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: