caffe的学习笔记(一)
今天先跑一下它的自带例子和一个自己的例子(楼主也是刚接触,有做得不好的地方多包涵)
1. caffe的简介
caffe是一个清晰而高效的深度学习框架,纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口,可以在CPU和GPU直接无缝切换;我认为caffe的主要优势:
(1)CPU与GPU的无缝切换;
(2)模型与优化都是通过配置文件来设置,无需代码(在上层去进行训练,不用理解它实际是怎么实现的);
(3)caffe有很多自带例子,比较好上手。
2. 学习caffe的第一步:安装caffe(我的OS是Ubuntu16.04)
这个在网上教程很多,我也是安装了蛮久,根据个人电脑的配置不同,看你会遇到完全不同的问题。只有根据情况慢慢解决了,这里推荐一篇博客:https://blog.csdn.net/haoji007/article/details/52081273 点击打开链接安装玩之后的caffe目录下:
3. 跑通caffe的一个自带例子mnist
3.1 运行mnist目录下的get_mnist.sh 文件:
cd data/mnist
./get_mnist.sh
我们来看看这个shell文件做了啥:
#!/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
它从 http://yann.lecun.com/exdb/mnist上找到我们需要的四个文件,并下载下来
执行完之后:
可以看到这几个文件已经在mnist目录下了
3.2 数据转换,我们输入的图片文件有很多不同的格式,在caffe中为了统一,要将数据文件转成lmdb文件。转换的函数在caffe中已经写好了!我们可以直接用。
在mnist中已经写好了调用的shell文件,我们运行一下就OK了
./examples/mnist/create_mnist.sh
(注意,要在caffe根目录下运行)
然后可以得到两个_lmdb文件:
4. 网络文件配置
然后就是caffe的重点:网络文件配置(也就是examples/mnist/lenet_train_test.prototxt和examples/mnist/lenet_solver.prototxt这两个文件),它定义了你用来的net的各个layer和你的训练过程中的参数等!
这里它已经写好了!!!我们只需要稍加修改就可以使用
4.1 新建一个文件夹来保存我们将要训练好的模型:
mkdir model***
4.2 修改lenet_solver.prototxt文件中的snapshot_prefix为你刚才新建的文件夹的路径(从/caffe下开始)
5. 开始执行:
到这里,我们就可以开始执行了!
./examples/mnist/train_lenet.sh
cd到caffe目录下执行上面的命令。
结果:
可以看到accuracy达到了0.99(很理想了)
可以看到我们得到我们的模型文件:
ok!今天就写到这里
后续继续更新