zoukankan      html  css  js  c++  java
  • caffe-win10-cifar10

    因为是在win10下安装的GPU版caffe,所以不能直接运行linux里的shell脚本。但是win10自带bash,可以运行.sh文件,网上也有直接下Cygwin和git的。我是下载好git后才知道win10自带有bash。。

    win10自带bash:

    git:

     转入正题,运行cifar10实例。

    在运行这个实例过程中,给我体会最深的是路径问题。我的caffe路径是:

    E:caffe-mastercaffe-masterBuildx64Release

    E:caffe-mastercaffe-masterexamplescifar10

    下图所示路径即E:caffe-mastercaffe-master就是caffe的根路径。

     

    1.下载数据:

    # sudo sh data/cifar10/get_cifar10.sh

     以上命令在caffe根路径执行即可。

    运行成功后,会在 data/cifar10/文件夹下生成一堆bin文件:原文件中只有get_cifar10这一shell文件。

    可见生成的5个训练集和一个测试集。

     

    2.数据转换

    bin文件为二进制文件,而caffe只许leveldb和lmdb两种数据格式。这里选择转为leveldb格式。

    在/examples/cifar10文件夹中有一个 convert_cifar_data.cpp文件,经过编译之后会生成convert_cifar_data.exe可执行文件。注意这个文件的位置在:

    可能有人文件位置不在这个地方,两种原因:第一种是最开始下载安装caffe的时候是在https://github.com/happynear/caffe-windows。而我在https://github.com/BVLC/caffe/tree/windows,两者路径有些不同,第一种而言convert_cifar_data.exe在bin文件下,而我的路径如上图。

    新建一个名为input的空文件夹,将之前生成的6个bin(二进制)文件拷贝到input文件夹中,再建一个空文件夹output用来存放生成的leveldb文件。在当前目录下(dara/cifar10/)建立一个 bat 文件,实现binary 到 leveldb 数据集格式转换。(要建立一个output空文件夹,否则会提示could not found files)批处理代码如下:

    convert_cifar_data.exe input output leveldb
    pause

    注意,以上命令中包含convert_cifar_data.exe、input、output,所以执行以上命令时路径下必须同时包括convert_cifar_data.exe、input、output文件夹,也就是说当前路径是Buildx64Release则可以直接执行并且会在这个目录下的output中生成leveldb文件。如下图:

      

    好,已经生产levelde文件在output文件夹中:

     

    3.求数据图像的均值,获取mean.binaryproto 

    这一步需要一个可执行文件:comput_image_mean.exe,他在路径和生成leveldb数据的convert_cifar_data.exe文件在同一个路径下。

    在当前路径Buildx64Release下新建一个bat文件,然后输入以下命令:

    compute_image_mean.exe --backend=leveldb output/cifar10_train_leveldb mean.binaryproto
    pause

    注意一定强调后端是leveldb格式!否则默认lmdb会出错。以上命令生成训练集的均值。同理,以上命令是在Buildx64Release下执行的,所以生成的mean.biaryproto也在这个路径下;

    好了,到目前为止,我们有了leveldb数据、均值文件,下一布就可以开始训练了。

     

    4.训练cifar10

    首先,在examples/cifar10/文件夹中,找到cifar10_quick_trian_test.prototxt。 修改里面的mean_file和source的路径。backend一律改为LEVELDB。 注意是大写!leveldb不可以!!!,
    这个prototxt文件中共有6处要改,分别是train和test的mean-file、source、backend:

    注意在examples/cifar10/中有几种不同的训练模式(quick和full等),注意一一对应。我们利用的是cifar10_quick_trian_test.prototxt网络结构,所以在solver中选择cifar10_quick_solver.prototxt

    例如你选择的网络是cifar10_full_train_test,那么你的slver应为cifar10_full_solver:

    到此一切就绪可以开始了:

    Buildx64Releasecaffe.exe train --solver=examplescifar10cifar10_quick_solver.prototxt
    pause

    注意mean_file、sourse等都是在caffe根目录下计算路径的,所以选择在caffe根目录下建立mytrain-cifar10.bat文件,写入以上命令:以上命令都以根目录为标准给出了caffe.exe和cifar10_quick_solver.prototxtde的相对路径:

    执行:

     

     

     

    参考:

    http://blog.csdn.net/hyqsong/article/details/51713444    

    http://blog.csdn.net/muyouhang/article/details/50688038

  • 相关阅读:
    C# Trace 信息写入日志文件
    C# 获取操作系统版本和Service Pack版本的方法
    C# 控制系统服务
    log4net记录日志过程中一直占用日志文件的解决方法
    FileStream类学习小结
    Centos7 部署.net core2.1 详细步骤
    linux 安装redis 完整步骤
    Asp.Net Core Linux环境下 找不到配置文件、静态文件的问题
    关于Clipboard剪切板获取值为NULL问题解决方法
    STA和MTA线程模式的区别
  • 原文地址:https://www.cnblogs.com/king-lps/p/6606966.html
Copyright © 2011-2022 走看看