• caffe 训练imagenet


    1.整理得到自己的数据库,并生成自己数据库的列表文件.txt

    2.将数据库转成lmbp格式

    3.计算图像均值

    4.修改网络参数

    5.得到结果

    1.整理得到自己的数据库

    因为前面博文提到的原因,技术水平有限没办法实现主机和虚拟机之间的文件共享,就暂时先用比较麻烦的方法。现在主机上整理好需要的数据集

    一共四个文件:两个图像库文件夹----测试、校正 ;两个图像库列表文件----测试、校



    测试图像库文件夹中根据自己的分类类别在进行分类,比如我是用的两个类别,所以在测试图像库文件夹中还有两个文件夹:分别存放两个类别的图像



    校正图像库文件夹中不用按照类别分类

    列表文件为.txt文件,一共两个文件,其中存放的是文件名+对应的图像类别





    特别注意:

    1.train.txt和val.txt中是所有的训练图像库的数据,存放的信息为:文件名(空格)类别

    2.对于train.txt一定要把上层目录也要添加到文档中,因为后面再脚本执行命令的时候,给的路径只是到/train,后面的子路径是木有,如果train.txt中不添加路径会报错找不到文件

    在主机中整理好文件后,在caffe-master/data目录下新建mydata文件夹,并将文件夹的权限更改为可写(利用命令chmod go+w filename)



    直接将主机中的文件复制粘贴到mydata目录下即可



    2.将数据库转成lmbp格式

    在caffe-master/examples目录下新建mytask文件并修改mytask文件的权限(sudo chomd go+w mytask),复制caffe-master/examples/imagenet目录下面的create_imagenet.sh脚本到mytask目录下(sudo cp create_imagenet.sh /caffe-master/examples/mytask ,先cd到create_imagenet.sh所在的目录下)



    修改create_imagenet.sh脚本的权限 (sudo chmod go+w filename),修改脚本命令

    修改前的脚本命令如下



    修改后的脚本命令如下



    绿框中为修改的部分,其实就是更改相应的目录,第一步的时候生成的.txt如果没有子目录就会报错,原因就在这里

    修改后保存退出,然后执行脚本。可以看到会在mytask文件下生成两个文件,bingo



    3.计算图像均值

    直接利用/caffe-master/examples/imagenet中的计算均值的脚本make_imagenet_mean.sh,复制脚本到mytask目录下.进行如下修改,修改后运行。





    运行后悲剧了,,,报错,,,查了原因竟然是内存溢出。。。。。醉了。。。。虚拟机果然是不给力呀。。。

    后面的两步只能是理论指导了,,,个人也木有实践

    4.修改网络的参数

    caffe-master/model/bvlc_reference_caffenet中的所有文件拷贝到mytask目录下,并对train_val.prototxt进行修改





    如果你细心观察train_val.prototext,你会发现他们除了数据来源不同和最后一层不同,其他基本相同。在训练中,我们用一个softmax——loss层计算损失函数和初始化反向传播,而在验证,我们使用精度层检测我们的精度。

    我们还有一个运行的协议solver.prototxt已经复制过来的文件,将第一行路径改为我们的路径 “examples/myself/train_val.prototxt”,从里面可以观察到,我们将运行256批次,迭代4500000次(90期),每1000次迭代,我们测试学习网络验证数据,我们设置初始的学习率为0.01,每100000(20期)次迭代减少学习率,显示一次信息,训练的weight_decay为0.0005,每10000次迭代,我们显示一下当前状态。 

    以上是教程的,实际上,以上需要耗费很长时间,因此,我们稍微改一下 

    test_iter: 1000是指测试的批次,我们就10张照片,设置10就可以了。 

    test_interval: 1000是指每1000次迭代测试一次,我们改成500次测试一次。 

    base_lr: 0.01是基础学习率,因为数据量小,0.01就会下降太快了,因此改成0.001 

    lr_policy: “step”学习率变化 

    gamma: 0.1学习率变化的比率 

    stepsize: 100000每100000次迭代减少学习率 

    display: 20每20层显示一次 

    max_iter: 450000最大迭代次数, 

    momentum: 0.9学习的参数,不用变 

    weight_decay: 0.0005学习的参数,不用变 

    snapshot: 10000每迭代10000次显示状态,这里改为2000次 

    solver_mode: GPU末尾加一行,代表用GPU进行(如果使用的CPU就改成CPU即可



    5.训练得到结果

    将caffe-master/examples/imagenet中的train_caffnet.sh脚本拷贝到mytask目录下,修改脚本--修改目录 具体修改如下,修改完成后运行 静静等待结果即可





    因为我的机器没办法跑,报内存溢出错误,就没办法给大家贴图了。

  • 相关阅读:
    TreeMap
    索引
    B-树、B+树
    硬盘速度、存储方式
    2-3树
    多叉树、2-3-4树
    红黑树
    平衡树、AVL树
    树、多路树、二叉树
    Java实现后缀表达式建立表达式树
  • 原文地址:https://www.cnblogs.com/alexanderkun/p/5698363.html
Copyright © 2020-2023  润新知