zoukankan      html  css  js  c++  java
  • [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

  • 相关阅读:
    STL(五)list
    WinCE进程ID获取窗口句柄
    【转】.obj, .lib, .dll, .exe的关系
    《Windows核心编程》——线程
    【转】windows结束线程方式
    VS2005调试多进程
    【转】VC中常用的宏
    【转】C++标准库简介
    WinCE下用STL的奇怪问题
    STL(三)string
  • 原文地址:https://www.cnblogs.com/taokongcn/p/4341371.html
Copyright © 2011-2022 走看看