前言
上一篇文章讲解了caffe在虚拟机ubuntu16.04中的安装教程,本文章将利用caffe架构学习其中自带的mnist手写体数字识别例程,动手学习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
可以看到这个脚本主要进行4个文件的下载,
train-images-idx3-ubyte //训练用的图像文件
train-labels-idx1-ubyte//训练用的标签文件
t10k-images-idx3-ubyte//测试用的图像文件
t10k-labels-idx1-ubyte//测试用的标签文件
执行以下命令进行下载
cd ~/caffe/data/mnist
./get_mnist.sh
下载完成
数据的处理
在Caffe根目录examples/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=examples/mnist
DATA=data/mnist
BUILD=build/examples/mnist
BACKEND="lmdb"
echo "Creating ${BACKEND}..."
rm -rf $EXAMPLE/mnist_train_${BACKEND}
rm -rf $EXAMPLE/mnist_test_${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."
主要是用image文件和label文件来生成两个lmdb格式的文件,执行如下:
./examples/mnist/create_mnist.sh