Caffe Minist 教程
Caffe Minist 教程
一、准备工作
- 下载
Caffe
https://github.com/BVLC/caffe
https://github.com/BVLC/caffe/tree/windows - 下载
Mnist
数据集并解压
name | describe |
---|---|
train-images-idx3-ubyte.gz | 训练集图片文件 |
train-labels-idx1-ubyte.gz | 训练集对应的标签文件 |
t10k-images-idx3-ubyte.gz | 测试集图片文件 |
t10k-labels-idx1-ubyte.gz | 测试集对应的标签文件 |
3.使用 convert_mnist_data.exe
工具转换数据
convert_mnist_data.exe
Usage:
convert_mnist_data [FLAGS] input_image_file input_label_file output_db_file
[FLAGS]:转换文件格式,可设置`lmdb`和`leveldb`格式,默认`lmdb`。
input_image_file:输入训练集图片文件
input_label_file:输入训练集标签文件
output_db_file:输出转换结果文件
例如:
convert_mnist_data.exe --backend=leveldb E:\GoogleDownloads\caffe\mnist\t10k-images.idx3-ubyte E:\GoogleDownloads\caffe\mnist\t10k-labels.idx1-ubyte E:\GoogleDownloads\caffe\mnist\mnist_test_leveldb
二、使用 Caffe.exe
工具进行训练和测试
usage:
caffe <command> <args>
command:
train train or finetune a model //训练或调整模型
test score a model //评估模型
device_query show GPU diagnostic informatio //显示GPU信息
time benchmark model execution time //检测模型执行时间
args:
-solver //必须 ,模型配置文件
-gpu //可选,指定那一块GPU用来训练
-snapshot //可选,从快照中恢复训练
-weights //可选,不能和 snapshot 同时使用,用预先训练好的权重来微调模型
-iteration //可选,迭代次数,默认50
-model //可选,定义模型,也可以在 solver配置文件中指定。
-sighup_effect //可选,可选参数。用来设定当程序发生挂起事件时,执行的操作,可以设置为snapshot, stop或none, 默认为snapshot
-sigint_effect //可选参数。用来设定当程序发生键盘中止事件时(ctrl+c), 执行的操作,可以设置为snapshot, stop或none, 默认为stop
- 获取 配置文件
lenet_solver.prototxt
和 网络模型lenet_train_test.prototxt
文件
获取位置:
在下载的 Caffe 源代码 caffe-windows\examples\mnist 目录
- 修改文件
修改 lenet_solver.prototxt 文件,把 net 即网络模型设置成你自己的路径,把快照备份路径更改为自己的路径
修改 lenet_train_test.prototxt 文件,把训练和验证数据路径更改为你自己的路径
mean_file:"xxx.mean"
- 使用 Caffe.exe 训练 并 测试
caffe.exe train --solver=E:\\GoogleDownloads\\caffe\\mnist\\lenet_solver.prototxt
三、使用 classification.exe
工具进行分类测试
Usage:
classification.exe deploy.prototxt network.caffemodel mean.binaryproto labels.txt img.jpg
1. 准备网络模型文件
2. 准备训练好的 lenet_iter_10000.caffemodel
模型文件
3. 准备计算好的二进制均值文件 mnist.mean
4. 准备好与标签对应的解释文件,就是指这个标签的具体描述文件
5. 准备输入的图片文件
classification.exe E:\GoogleDownloads\caffe\mnist\lenet.prototxt \
E:\GoogleDownloads\caffe\mnist\lenet_iter_10000.caffemodel
E:\GoogleDownloads\caffe\mnist\mnist.mean \
E:\GoogleDownloads\caffe\mnist\synset_labels.txt \
E:\GoogleDownloads\caffe\mnist\Snipaste_2017-10-14_19-48-42.png
四、附录
1. 使用 convert_imageset.exe
工具把图像数据转换成db数据
Usage:
convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME
FLAGS:
-gray: 是否以灰度图的方式打开图片。程序调用opencv库中的imread()函数来打开图片,默认为false
-shuffle: 是否随机打乱图片顺序。默认为false
-backend:需要转换成的db文件格式,可选为leveldb或lmdb,默认为lmdb
-resize_width/resize_height: 改变图片的大小。在运行中,要求所有图片的尺寸一致,因此需要改变图片大小。 程序调用opencv库的resize()函数来对图片放大缩小,默认为0,不改变
-check_size: 检查所有的数据是否有相同的尺寸。默认为false,不检查
-encoded: 是否将原图片编码放入最终的数据中,默认为false
-encode_type: 与前一个参数对应,将图片编码为哪一个格式:‘png','jpg'......
ROOTFOLDER/:图片数据集存放路径
LISTFILE:图片集标签文件,一般一个 txt 文件,一行一张图片和标签
DB_NAME:生成的 db 文件保存路径
2. 使用 compute_image_mean.exe
工具计算二进制均值文件
Usage:
compute_image_mean [FLAGS] INPUT_DB [OUTPUT_FILE]
FLAGS:
INPUT_DB:输入数据文件
OUTPUT_FILE:输出二进制均值文件
例如:
compute_image_mean.exe E:\GoogleDownloads\caffe\mnist\mnist_train_lmdb E:\GoogleDownloads\caffe\mnist\mnist.mean
转载请注明出处并保持作品的完整性,谢谢