Windows caffe (一) MNIST手写体跑起来

    xiaoxiao2021-03-25  148

    1、首先配置环境

    网上教程比较多,给大家推荐一篇博客

    2、安装Git和wget

    Git bash可以让你直接在windows下运行shell脚本。 下载地址

    wget可以让你从互联网上获取资源。下载地址

    为了外部调用wget,需要将wget所在目录加入环境变量

    电脑-》属性-》高级系统设置-》环境变量-》(用户/系统都可以)

    3、下载MNIST数据

    用git bash运行caffe目录下的data/mnist下的get_mnist.sh

    #!/usr/bin/env sh # This scripts downloads the mnist data and unzips it. DIR="$( cd "$(dirname "$0")" ; pwd -P )" cd "$DIR" echo "Downloading..." for fname in train-images-idx3-ubyte train-labels-idx1-ubyte t10k-images-idx3-ubyte t10k-labels-idx1-ubyte do if [ ! -e $fname ]; then wget --no-check-certificate http://yann.lecun.com/exdb/mnist/${fname}.gz gunzip ${fname}.gz fi done调用wget,从网络中直接下载数据集,下载完成后,如下图所示:

    4、数据格式的转换

    第三步从网络下载的数据是二进制数据,无法直接在caffe框架下使用,需要转换成lmdb或者leveldb格式的数据,本例中转换为lmdb格式。具体过程如下:

    打开 caffe根目录/example/mnist/create_mnist.sh

    #!/usr/bin/env sh # This script converts the mnist data into lmdb/leveldb format, # depending on the value assigned to $BACKEND. set -e EXAMPLE=D:\\Caffe\\Caffe_BVLC\\examples\\mnist DATA=D:\\Caffe\\Caffe_BVLC\\data\\mnist BUILD=D:\\Caffe\\Caffe_BVLC\\Build\\x64\\Release BACKEND="lmdb" echo "Creating ${BACKEND}..." rm -rf $EXAMPLE/mnist_train_${BACKEND} rm -rf $EXAMPLE/mnist_test_${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." 红色部分换成自己的路径。

    有一点需要注意:路径的设置,当我使用相对路径的时候,报了一个错误:Check failure stack trace

    执行完该文件,会在example/mnist文件夹下出现两个新的文件夹,如下图:

    至此,数据的转换已经完成。

    5、训练神经网络

    在根目录下新进一个文本文件,重命名为run_mnist.bat。在该文本中加入

    .\Build\x64\Release\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt pause打开lenet_solver.prototxt,在最后一行选择cpu或者gpu,根据自己的情况选择。

    鼠标双击运行run_mnist.bat,整个训练过程在我电脑下用了10来分钟。训练结果如下

    数据训练完成,会在example/mnist文件夹下出现5000次和10000次的模型,accuracy达到0.9891

    6、测试模型

    在根目录下创建test_mnist.bat,内容如下: .\Build\x64\Release\caffe.exe test -model=examples\mnist\lenet_train_test.prototxt -weights=examples\mnist\lenet_iter_10000.caffemodel -iterations=100 pause注意:这里一定不要因为一行过长,使用回车,不然会报错,Check failure stack trace:

    我们可以观测到,精度达到了0.9903

    至此:手写体从 原始二进制数据-》格式转换-》训练-》测试 已经完成

    转载请注明原文地址: https://ju.6miu.com/read-2053.html

    最新回复(0)