win10环境下cpu版本caffe训练mnist数据集的心得 openmv机器学习卷积神经网络训练步骤二
Caffe快速上手 mnist数据集分类
1.下载数据集
yann.lecun.com/exdb/mnist/ (网络要求高,另附以下下载方式)
链接:https://pan.baidu.com/s/1ADDhMGx5QBYydY84G7dshw
提取码:4f74
将所下载的4个(压缩包)二进制数据集放入caffe目录下example下的mnist下新建的mnist_data文件下,并解压到该文件下,如下图
2.将下载的二进制文件转换成LEVELDB或LMDB格式的文件
之前编译输出的文件下caffe-windows ->Build->x64 ->Dubug目录下有一个convert_mnist_data.exe文件,此文件可实现文件格式转换功能
在caffe-windows ->example->mnist文件夹下新建bat文件,再bat文件夹下新建convert_train_lmdb.bat,用notepad++编辑如下文字
%执行数据转换程序%
%传入训练图片%
%传入训练图片的标签%
%转换后的数据存放在此目录%E:\caffe-cpu\caffe-windows\Build\x64\Debug\convert_mnist_data.exe ^
E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\train-images.idx3-ubyte ^
E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\train-labels.idx1-ubyte ^
E:\caffe-cpu\caffe-windows\examples\mnist\lmdb\train_lmdb
文件的路径需要根据自己的存放路径进行修改
注意:第四行需要在mnist文件夹下新建lmdb文件,但是不需要在lmdb文件下新建train_lmdb,此文件会自动生成。修改好之后保存,然后双击此bat文件即可执行该文件,执行完之后的结果时lmdb文件夹下会创建一个train_lmdb的文件如下图
同理,在在caffe-windows ->example->mnist ->bat文件夹下新建convert_test_lmdb.bat,用notepad++编辑如下文字
> %执行数据转换程序%
> %传入测试图片%
> %传入测试图片的标签%
> %转换后的数据存放在此目录%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\convert_mnist_data.exe ^
> E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\t10k-images.idx3-ubyte ^
> E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\t10k-labels.idx1-ubyte ^
> E:\caffe-cpu\caffe-windows\examples\mnist\lmdb\test_lmdb pause
文件的路径也是需要自己根据自己的存放路径进行修改的,同样test_lmdb不需要自己新建,保存好之后,双击convert_test_lmdb.bat文件运行,得到如下图:
3.修改网络模型描述文件
在mnist文件夹下会有一个lenet_train_test.prototxt文件,需要对其进行修改
使用notepad++打开进行编辑
主要是把刚刚生成的lmdb的路径进行修改,train_lmdb和test_lmdb注意复制过来的路径斜杠是这样的\,需要把\变成/,切记。
之后打开mnist下的lenet_solver.prototxt文件,对其进行修改
也主要是路径的修改
Net路径修改成刚刚那个lenet_train_test.prototxt,注意修改成反斜杠/
max_iter:10000 总共训练10000次
Snapshot:5000 每5000次输出一次
模型文件存放目录snapshot_prefix:需要自己设定
Solver_model: cpu 使用CPU训练
4.训练模型
在bat文件夹下新建train.bat文件
进行修改
> %train训练数据%
> %超参数文件%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\caffe.exe train ^
> -solver=E:/caffe-cpu/caffe-windows/examples/mnist/lenet_solver.prototxt
> pause
注意:修改为自己的路径,第一行斜杠为\,第二行斜杠为/。修改完成后就可以训练了,一般情况下cpu训练一个小时左右(i7-9750H亲测48分钟)
Pause是训练结束后会停住
按照我的教程,训练好的文件会存放到mnist文件下
在mnist文件下新建model文件,把这四个文件放进去。
5.准备好要测试的图片
下载链接:
链接:https://pan.baidu.com/s/1Zw3Ji0rwN9ETlWn7A2xDsw
提取码:sycr
下载好之后放入到mnist_data文件夹下,文件名为0-9,里边有10张28*28像素的图片,在bat文件夹下新建一个mnist_mean.bat文件,并进行编辑
> %计算均值程序%
> %train_lmdb%
> %均值文件存放路径%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\compute_image_mean.exe ^
> E:\caffe-cpu\caffe-windows\examples\mnist\lmdb\train_lmdb ^
> E:\caffe-cpu\caffe-windows\examples\mnist\mean_file\mean.binaryproto
> Pause
路径修改成自己的路径,需要在mnist文件夹下新建mean_file文件,不需要新建mean.binaryproto,否则会报错,保存之后运行,运行完会在mean_file文件夹下生成一个mean.binaryproto文件
6.准备标签并测试分类效果
在mnist文件夹下新建label文件夹,新建label.txt,对其进行编辑如下并保存
在bat文件夹下新建mnist_classification.bat并进行编辑
> %分类可执行程序%
> %网络结构%
> %训练好的模型%
> %均值文件%
> %标签%
> %要分类的图片%
>
> E:\caffe-cpu\caffe-windows\Build\x64\Debug\classification.exe ^
> E:\caffe-cpu\caffe-windows\examples\mnist\lenet.prototxt ^
> E:\caffe-cpu\caffe-windows\examples\mnist\models\lenet_iter_10000.caffemodel ^
> E:\caffe-cpu\caffe-windows\examples\mnist\mean_file\mean.binaryproto ^
> E:\caffe-cpu\caffe-windows\examples\mnist\label\label.txt ^
> E:\caffe-cpu\caffe-windows\examples\mnist\MNIST_data\0-9\5.bmp Pause
更改成自己的路径,随意选取一张图片,以5为例
运行结果如下,即为5的准确率为100%
慢慢来,这只是安装好之后的测试,如果需要训练自己的模型,首先需要采集照片,大概一个类别至少800张,需要后边的教程,博客第二次写,第一次写的惨不忍睹,这次希望有点进步