美文网首页
caffe的.sh文件转.bat文件,用于cmd下执行

caffe的.sh文件转.bat文件,用于cmd下执行

作者: 佩鸿PH | 来源:发表于2016-10-24 12:49 被阅读0次

    caffe文件夹下有.sh文件,如果是在linux平台下训练caffe,可以直接在terminal上执行.sh文件,非常方便。但如果是在windows平台下就无法执行.sh文件。以create_mnist.sh为例,用记事本打开.,可以看到如下代码(中文部分是我添加的注解):

    #!/usr/bin/env sh
    # This script converts the mnist data into lmdb/leveldb format,
    # depending on the value assigned to $BACKEND.
    
    #把目录设置为变量
    EXAMPLE=examples/mnist
    DATA=data/mnist
    BUILD=build/examples/mnist
    
    #生成文件后缀
    BACKEND="lmdb"
    
    #在屏幕上显示文字
    echo "Creating ${BACKEND}..."
    
    # rm -rf 文件夹  该命令将目录及目录中的文件全部删除并且不用确认
    # $表示引用目录变量
    rm -rf $EXAMPLE/mnist_train_${BACKEND}
    rm -rf $EXAMPLE/mnist_test_${BACKEND}
    
    # .bin为编译生成的可执行文件,两个$DATA表示需要转换的文件,
    # $EXAMPLE表示转换后的文件的存放目录,--backend表示后缀
    $BUILD/convert_mnist_data.bin $DATA/train-images-idx3-ubyte \
      $DATA/train-labels-idx1-ubyte $EXAMPLE/mnist_train_${BACKEND} --backend=${BACKEND}
    $BUILD/convert_mnist_data.bin $DATA/t10k-images-idx3-ubyte \
      $DATA/t10k-labels-idx1-ubyte $EXAMPLE/mnist_test_${BACKEND} --backend=${BACKEND}
    
    echo "Done."
    

    但是.sh的shell代码只能在linux下执行,对应到windows平台上,应该修改成.bat文件。修改之后的代码如下:

    :: !\usr\bin\env sh
    :: This script converts the mnist data into lmdb\leveldb format,
    :: depending on the value assigned to $BACKEND.
    
    ::把目录设置为变量
    ::bat中用set来给变量赋值,set var=abcd
    ::取消赋值,set var=
    set EXAMPLE=examples\mnist
    set DATA=data\mnist
    set BUILD=Build\x64\Release
    
    ::生成文件后缀
    set BACKEND=lmdb
    
    ::在屏幕上显示文字,通过%%引用变量
    echo "Creating %BACKEND%..."
    
    ::删除文件夹和文件夹中的文件,并且不需要确认
    rd /s /q %EXAMPLE%\mnist_train_%BACKEND%
    rd /s /q %EXAMPLE%\mnist_test_%BACKEND%
    
    ::执行.exe文件,两个$DATA表示需要转换的文件,
    :: $EXAMPLE表示转换后的文件的存放目录,--backend表示后缀
    %BUILD%\convert_mnist_data.exe %DATA%\train-images.idx3-ubyte %DATA%\train-labels.idx1-ubyte %EXAMPLE%\mnist_train_%BACKEND% --backend=%BACKEND%
    %BUILD%\convert_mnist_data.exe %DATA%\t10k-images.idx3-ubyte %DATA%\t10k-labels.idx1-ubyte %EXAMPLE%\mnist_test_%BACKEND% --backend=%BACKEND%
    
    echo "Done."
    

    新建一个txt文件,命名为create_mnist.txt,把代码复制进去。注意,.sh代码里的斜杠都是“/”,但.bat文件里要改成“\”,否则会报错。保存之后把文件后缀改成.bat,在cmd里运行的时候,用start命令执行该.bat文件,效果和linux上运行.sh一样。具体运行步骤,参考caffe的examples/mnist/readme.md。

    相关文章

      网友评论

          本文标题:caffe的.sh文件转.bat文件,用于cmd下执行

          本文链接:https://www.haomeiwen.com/subject/qukluttx.html