本次学习使用caffe-master文件在Downloads目录下,使用caffe-master。
1.准备数据库 CIFAR-10(默认在caffe-master目录下)
终端执行如下命令获取数据库文件
chenshaobo@idea:~/Downloads/caffe-master$ cd data/cifar10/
chenshaobo@idea:~/Downloads/caffe-master/data/cifar10$ ./get_cifar10.sh
执行之后,当前目录下有以下文件:(ls)
batches.meta.txt data_batch_3.bin get_cifar10.sh
data_batch_1.bin data_batch_4.bin readme.html
data_batch_2.bin data_batch_5.bin test_batch.bin
其中shell文件解析如下:
DIR="$( cd "$(dirname "$0")" ; pwd -P )" //dirname "$0"是获取脚本所在的目录;pwd -P可以获取当前目录的绝对路径;
cd $DIR
echo "Downloading..."
wget --no-check-certificate http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
echo "Unzipping..."
tar -xf cifar-10-binary.tar.gz && rm -f cifar-10-binary.tar.gz
mv cifar-10-batches-bin/* . && rm -rf cifar-10-batches-bin
表示获取文件解压之后的cifar-10-batches-bin文件夹下的所有文件都移到当前目录下并删除空文件夹;
然后,执行一下命令将获取的二进制文件转化为lmdb格式文件并计算image mean,如下:
chenshaobo@idea:~/Downloads/caffe-master/data/cifar10$ cd ../..
chenshaobo@idea:~/Downloads/caffe-master$ ./examples/cifar10/create_cifar10.sh
运行完之后,将会在examples/cifar10下生成两个lmdb格式文件和数据库图像均值二进制文件。
2.训练和测试
训练主要使用网络配置文件cifar10_quick_train_test.prototxt和网络求解文件cifar10_quick_solver.prototxt
chenshaobo@idea:~/Downloads/caffe-master/examples/cifar10$ cd ../..
chenshaobo@idea:~/Downloads/caffe-master$ ./examples/cifar10/train_quick.sh
执行完命令后,此脚本首先进行网络的搭建工作。
然后,才开始进行训练。
通过设置后,每100次迭代会显示一次训练时的学习率lr和损失函数loss,每500次测试一次,输出#0(准确率)和*1(测试损失函数)。当迭代完之后,可以获得此模型的准确率。其中,模型的参数以二进制protobuf格式形式进行存储。
然后利用此模型训练新数据。