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

    上一篇主要以bat形式实现了leveldb形式的cifar10,因为对于shell脚本不甚熟悉,所以这次专门利用.sh调用来实现lmdb形式的cifar10。

    1.下载数据

    同上一篇。

     

    2.数据转换和生成均值文件。

    这次将bin(二进制)形式的文件转换为lmdb文件。

    参考了一篇博客,用到了examples/cifar10/路径下的create_cifar10.sh文件。回顾上一篇博客里的数据转换用到的是convert_cifar_data.exe可执行文件。那么可以推想一定是crear_cifar10.sh文件里面包含了convert_cifar_data.exe这一命令。那么核心数据转换工具到头来还是convert_cifar_data.exe。

    参考博客给出的方法是:

    sudo sh examples/cifar10/create_cifar10.sh

    但是我在git中执行这条语句老是出错:提示找不到build/examples/cifar10/convert_cifar-data.bin文件。因为我在win下操作。

    按照错误原因,我利用cat命令打开create_cifar10.sh文件一探究竟:

     对于sh文件里第二行注释里写道将数据转换为leveldb格式。。这。。不应该是lmdb格式吗,况且第7行写道DBTYPE=lmdb,即dbtype为lmdb格式。这并无大碍,再次声明我们的目标是lmdb。

     看13行的路径起始为build,其最终文件是convert_cifar_data.bin。而我转换数据的caffe路径是E:caffe-mastercaffe-masterexamplescifar10convert_cifar_data.exe和生成均值文件的caffe路径是E:caffe-mastercaffe-masterexamplescifar10compute_image_mean.exe 。可见它俩一个路径。

     

    所以这个create_cifar10.sh文件有两个步骤,先生成训练和测试样本的lmdb数据,再生成训练样本的均值文件。

    所以红线标识的那两行路径都得修改,改为自己convert_cifar_data.exe、compute_image_mean.exe的路径,并且文件格式也要改为exe格式,我将其改为mycifar10-lmdb.sh:

     仔细琢磨文件中:

    #!/usr/bin/env sh
    # This script converts the cifar data into lmdb format.
    set -e
    
    EXAMPLE=examples/cifar10   #用EXAMPLE指代路径examples/cifar10
    DATA=data/cifar10  #意为DATA指代路径data/cifar10  
    DBTYPE=lmdb  #将db类型指定为lmdb
    
    echo "Creating $DBTYPE..."  #开始转换数据格式
     
    ./examples/cifar10/convert_cifar_data.exe $DATA $EXAMPLE $DBTYPE   #用exe文件将DATA即data/cifar10下的二进制bin数据读入,转换成leveldb数据到EXAMPLE即examples/cifar10路径下。
    
    echo "Computing image mean..."  #开始求训练集的均值
    
    ./examples/cifar10/compute_image_mean.exe -backend=$DBTYPE    # 利用exe文件 ,后端为lmdb
      $EXAMPLE/cifar10_train_$DBTYPE $EXAMPLE/mean.binaryproto-hahaha-forlmdb  #用EXAMPLE即examples/cifar10路径下(上一步刚生成)的cifar10_train_lmdb生成examples/cifar10路径下
                                                                               #的mean.binaryproto-hahaha-forlmdb均值文件。
    echo "Done."

    以上就是sh文件,理解起来也不难。注:mycifar10-lmdb.sh要在caffe根目录下运行,不然路径又会有问题。

    运行mycifar10-lmdb.sh:

    看看结果吧:

     

     上图中生成了训练和测试集的lmdb格式和均值文件mean.binaryproto-hahaha-forlmdb(起这么个hahaha文件只是为了好区分。。)

     上图中生成的leveldb格式和mean.binaryproto均值文件都是上一篇博客利用bat生成的,不管怎样bat和sh的核心都是调用exe文件。

    
    
    
  • 相关阅读:
    Java经典编程题50道之二十九
    Java经典编程题50道之二十八
    Java经典编程题50道之二十七
    Java经典编程题50道之二十六
    Java经典编程题50道之二十五
    Python3爬虫(十一) 爬虫与反爬虫
    Python3爬虫(十) 数据存储之非关系型数据库MongoDB
    Python3爬虫(九) 数据存储之关系型数据库MySQL
    Python3爬虫(八) 数据存储之TXT、JSON、CSV
    Python3爬虫(六) 解析库的使用之Beautiful Soup
  • 原文地址:https://www.cnblogs.com/king-lps/p/6607700.html
Copyright © 2011-2022 走看看