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

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

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



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值