基于ubuntu对于CIFRA-10进行训练学习
2017-07-13 10:17
120 查看
参考博客:http://blog.csdn.net/c406495762/article/details/67650370
1.深度学习中经常看到epoch、 iteration和batchsize,下面按自己的理解说说这三个的区别:
(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batchsize个样本训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;
举个例子,训练集有1000个样本,batchsize=10,那么:
训练完整个样本集需要:
100次iteration,1次epoch。
根据上面的讲解,我们可以这样理解:
1次全部训练=1次epoch
样本总数(已知)=batchsize(可以设定,也是已知,因为可以通过在data层,也就是输入层指定)*iteration,batchsize表示一次处理多少张图片,在data层定义(人为可控)
从而求出来了iteration(迭代数)
这里说一下test_iter与test_interval的区别:
test_iter表示需要迭代的次数
test_interval,这个interval表示区间的意思,也就是,没进行test_interval次训练之后,就需要测试一次
2.跑cifra-10的例子的具体步骤:
step1:获取数据
cd ~/caffe
./data/cifar10/get_cifar10.sh
step2:图片格式转换和计算图片数据的均值
cd
~/caffe
./examples/cifar10/create_cifar10.sh
-------------------------在这里对于create_cifar10.sh的内容进行一下说明-----------------------
通过看create_cifar10.sh源代码可以看出来:
./build/examples/cifar10/convert_cifar_data.bin$DATA$EXAMPLE$DBTYPE
利用convert_cifar_data.bin,可以工具将/data/cifar10中的原始图片转换成lmdb文件并将其保存到/examples/cifar10文件中
之前这个脚本已经对于$DATA$EXAMPLE$DBTYPE进行了定义
EXAMPLE=examples/cifar10
DATA=data/cifar10
DBTYPE=lmdb
./build/tools/compute_image_mean
-backend=$DBTYPE
\ $EXAMPLE/cifar10_train_$DBTYPE$EXAMPLE/mean.binaryproto
利用这个工具,可以根据/examples/cifar10/cifar10_train_lmdb(刚刚生成的)文件计算出这些训练集图片数据的均值,
并将其保存到/examples/cifar10/mean.binaryproto文件中。
--------------对于compute_image_mean的说明————————————————
在训练过程中,caffe使用的均值数据格式是binaryproto,它是一个二进制格式文件。
作者为我们提供了一个计算均值的文件compute_image_mean.cpp,放在caffe根目录下的tools文件夹里面。
编译caffe后,生成的可执行文件放在 build/tools/ 目录下,我们可以直接在caffe根目录中使用如下指令:
1
带两个参数:
第一个参数:my-caffe-project /img_train_lmdb , 表示需要计算均值的数据,格式为lmdb的训练数据。
第二个参数:my-caffe-project /mean.binaryproto, 将计算出来的二进制格式结果保存到均值文件。
-----------------------------------------------------------------------------------------------
至此,一共生成了三个文件:cifar10_test_lmdb,cifar10_train_lmdb,mean.binaryproto。
cifar10_train_lmdb:用于Caffe训练的lmdb文件
cifar10_test_lmdb:用于Caffe测试的lmdb文件
mean.binaryproto:根据cifar10_train_lmdb计算出的图片数据均值
step3:建立prototxt,这个作者已经写好了,所以不用自己动手写,如果新建一个项目的话,prototxt文件是一个必须写的文件,
这个文件告诉caffe需要建立什么样的网络
step4:开始训练
cd ~/caffe
./examples/cifar10/train_quick.sh
-------------------对于train_quick.sh进行说明----------------
从下面的shell脚本文件中可以看出:使用caffe train指令根据cifar10_quick_solver.prototxt配置文件训练模型,随后在进行8次epochs之后学习率因子降低十分之一。
1.深度学习中经常看到epoch、 iteration和batchsize,下面按自己的理解说说这三个的区别:
(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batchsize个样本训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;
举个例子,训练集有1000个样本,batchsize=10,那么:
训练完整个样本集需要:
100次iteration,1次epoch。
根据上面的讲解,我们可以这样理解:
1次全部训练=1次epoch
样本总数(已知)=batchsize(可以设定,也是已知,因为可以通过在data层,也就是输入层指定)*iteration,batchsize表示一次处理多少张图片,在data层定义(人为可控)
从而求出来了iteration(迭代数)
这里说一下test_iter与test_interval的区别:
test_iter表示需要迭代的次数
test_interval,这个interval表示区间的意思,也就是,没进行test_interval次训练之后,就需要测试一次
2.跑cifra-10的例子的具体步骤:
step1:获取数据
cd ~/caffe
./data/cifar10/get_cifar10.sh
step2:图片格式转换和计算图片数据的均值
cd
~/caffe
./examples/cifar10/create_cifar10.sh
-------------------------在这里对于create_cifar10.sh的内容进行一下说明-----------------------
通过看create_cifar10.sh源代码可以看出来:
./build/examples/cifar10/convert_cifar_data.bin$DATA$EXAMPLE$DBTYPE
利用convert_cifar_data.bin,可以工具将/data/cifar10中的原始图片转换成lmdb文件并将其保存到/examples/cifar10文件中
之前这个脚本已经对于$DATA$EXAMPLE$DBTYPE进行了定义
EXAMPLE=examples/cifar10
DATA=data/cifar10
DBTYPE=lmdb
./build/tools/compute_image_mean
-backend=$DBTYPE
\ $EXAMPLE/cifar10_train_$DBTYPE$EXAMPLE/mean.binaryproto
利用这个工具,可以根据/examples/cifar10/cifar10_train_lmdb(刚刚生成的)文件计算出这些训练集图片数据的均值,
并将其保存到/examples/cifar10/mean.binaryproto文件中。
--------------对于compute_image_mean的说明————————————————
在训练过程中,caffe使用的均值数据格式是binaryproto,它是一个二进制格式文件。
作者为我们提供了一个计算均值的文件compute_image_mean.cpp,放在caffe根目录下的tools文件夹里面。
编译caffe后,生成的可执行文件放在 build/tools/ 目录下,我们可以直接在caffe根目录中使用如下指令:
build/tools/compute_image_mean my-caffe-project/img_train_lmdb my-caffe-project/mean.binaryproto1
1
带两个参数:
第一个参数:my-caffe-project /img_train_lmdb , 表示需要计算均值的数据,格式为lmdb的训练数据。
第二个参数:my-caffe-project /mean.binaryproto, 将计算出来的二进制格式结果保存到均值文件。
-----------------------------------------------------------------------------------------------
至此,一共生成了三个文件:cifar10_test_lmdb,cifar10_train_lmdb,mean.binaryproto。
cifar10_train_lmdb:用于Caffe训练的lmdb文件
cifar10_test_lmdb:用于Caffe测试的lmdb文件
mean.binaryproto:根据cifar10_train_lmdb计算出的图片数据均值
step3:建立prototxt,这个作者已经写好了,所以不用自己动手写,如果新建一个项目的话,prototxt文件是一个必须写的文件,
这个文件告诉caffe需要建立什么样的网络
step4:开始训练
cd ~/caffe
./examples/cifar10/train_quick.sh
-------------------对于train_quick.sh进行说明----------------
从下面的shell脚本文件中可以看出:使用caffe train指令根据cifar10_quick_solver.prototxt配置文件训练模型,随后在进行8次epochs之后学习率因子降低十分之一。
#!/usr/bin/env sh set -e TOOLS=./build/tools $TOOLS/caffe train \ --solver=examples/cifar10/cifar10_quick_solver.prototxt $@ # reduce learning rate by factor of 10 after 8 epochs $TOOLS/caffe train \ --solver=examples/cifar10/cifar10_quick_solver_lr1.prototxt \ --snapshot=examples/cifar10/cifar10_quick_iter_4000.solverstate.h5 $@
相关文章推荐
- Caffe学习笔记(一):CIFRA-10在Caffe上进行训练学习
- Caffe学习笔记(一):CIFRA-10在Caffe上进行训练学习
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 10 创建ROS消息和ROS服务
- 深度学习Caffe平台实例——CIFAR-10数据集在caffe平台上模型训练及实例使用模型进行预测
- caffe学习笔记1_CIFAR-10在caffe上进行训练与学习
- 【神经网络与深度学习】基于Windows+Caffe的Minst和CIFAR—10训练过程说明
- 【深度学习】笔记7: CNN训练Cifar-10技巧 ---如何进行实验,如何进行构建自己的网络模型,提高精度
- caffe读书笔记1 CIFAR-10在caffe上进行训练与学习
- CIFAR-10在caffe上进行训练与学习
- caffe读书笔记1 CIFAR-10在caffe上进行训练与学习
- 薛开宇学习笔记一之总结笔记(CIFAR-10 在 在 caffe 上进行训练与学习)--Linux语法总结
- CIFAR-10在caffe上进行训练与学习出现compute_image_mean: not found问题
- 【神经网络与深度学习】Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- TensorFlow学习笔记(八) 如何训练自己的图片模型-基于inception模型(未完成)使用迁移学习和从头学习
- Caffe - 基于Intel优化的Caffe框架训练和部署深度学习网络
- JUnit学习笔记10---mock object进行孤立测试4
- 深度学习与人脸识别系列(5)__利用训练好的vgg模型进行人脸识别(利用摄像头)
- 在Ubuntu(16.04)下进行基于Docker的Discourse安装及基本配置
- 2,HTK学习_基于HTK语音工具包进行孤立词识别的使用教程
- 学习如何对ubuntu Grub进行安装