Caffe for windows 训练minst和cifar-10

前言

今天刚看了看Theano,本来打算试着改改,再深入学习学习(这就是所谓的深度学习啊,亲们!哈哈)。由于扣扣好友在训练CIFAR-10数据集,所以就在昨天配好环境的基础上趁热打铁,跑一下Demo吧。特地感谢郭同学~

Minst训练

我的路径:G:\Caffe\Caffe For Windows\examples\mnist 对于新手来说,初步完成环境的配置后,一脸茫然。不知如何跑Demo,有么有!那么接下来的教程就是我们这些新手的福利了。 第一步:如果前面的train_net.cpp编译通过了,那么这个就非常简单。Caffe训练和测试的数据都是需要leveldb格式的,niuzhiheng大牛已经给我们转好了MNIST的数据格式。如下图:

第二步:如上图所示,文件夹下有个get_mnist_leveldb.bat ,双击就可以下载到MNIS的leveldb文件。不能翻墙的,就到:http://download.csdn.net/detail/u012878523/8140305 下载吧。下载完 解压到…\examples\mnist 文件夹下。网络参数可以再lenet_train.prototxt中修改。GPU和CPU的切换在lenet_solver.prototxt中,打开后代码如下所示:

# The training protocol buffer definition
train_net: "lenet_train.prototxt"
# The testing protocol buffer definition
test_net: "lenet_test.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "lenet"
# solver mode: CPU or GPU
solver_mode: GPU    #两种方式二选一
#solver_mode: CPU

第三步:双击train_lenet。bat就可以训练该网络。每500轮进行一次测试。Tset Score 0是正确率。Test Score 1是测试损失函数值。上两张训练图:

然后准确率的变化:

损失函数值的变化:

每迭代100次输出一次训练比率lr和训练损失函数值loss,模型的参数存储在lenet_iter_10000.solverstate中,然后这个模型就可以应用在新数据上了。

至此,minst的训练demo到此结束。然后试试cifar-10!

CIFAR-10 训练

第一步:数据库的说明:CIFAR-10 60000张 32X32 彩色图像 10类 50000张训练 10000张测试 附上一个的deeplearning的常用数据集下载链接,赶紧默默的收藏吧: http://deeplearning.net/datasets/

这是binary格式的,所以我们要把它转换成leveldb格式。

第二步:部分直接复制别人的,因为没看到原作者是谁,所以就不上链接了。) /examples/cifar10文件夹中有一个 convert_cifar_data.cpp 将他include到MainCaller.cpp中。如下:

然后就编译,博主一次就通过了 ,在bin文件夹里出现convert_cifar_data.exe。 接下来就可以进行格式转换。binary→leveldb。可以在bin文件夹下新建一个input文件夹。将cifar10.binary文件放在input文件夹中,这样转换时就不用写路径了。 然后cmd进入bin文件夹,执行convert_cifar_data.exe后,在output文件夹下有cifar_train_leveldb和cifar_test_leveldb两个文件夹。里面是转化好的leveldb格式数据。

第三步:下面我们要求数据图像的均值编译../../tools/comput_image_mean.cpp

编译成功后,没有出现comput_image_mean.exe。没关系,我们还有maincaller.exe,接下来求mean cmd进入bin,执行后,在bin文件夹下出现一个mean.binaryproto文件,这就是所需的均值文件。

第四步:训练cifar网络 在…/examples/cifar10文件夹里已经有网络的配置文件,我们只需要将cifar_train_leveldb和cifar_test_leveldb两个文件夹还有mean.binaryproto文件拷到cifar0文件夹下。 修改cifar10_quick_train.prototxt中的source: “cifar-train-leveldb” mean_file: “mean.binaryproto” 和cifar10_quick_test.prototxt中的source: “cifar-test-leveldb” mean_file: “mean.binaryproto”就可以了, 后面再训练就类似于MNIST的训练。写一个train_quick.bat,内容如下: copy..//..//bin//MainCaller.exe..//..//bin//train_net.exeSETGLOG_logtostderr=1”../../bin/train_net.exe” cifar10_quick_solver.prototxt pause 先编译一遍 train_net.cpp 运行train_quick.bat,结果如下:

备注: 另外,更改cifar*solver.prototxt文件可以使用CPU训练, solver mode: GPU solver_mode: CPU 可以看看CPU和GPU训练的差别。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

Caffe学习系列(23):如何将别人训练好的model用到自己的数据上

http://www.cnblogs.com/denny402/p/5137534.html

541
来自专栏AI研习社

一个应用于物体识别的迁移学习工具链

迁移学习指的是,通过对预训练模型的参数进行微调,将训练好的模型应用到相似或者只有细微差异的不同任务中。通过这个方法,我们可以基于一些性能顶尖的深度学习模型得到别...

1002
来自专栏云计算教程系列

如何在Ubuntu 16.04上安装和使用TensorFlow

TensorFlow是一款由Google构建的用于训练神经网络的开源机器学习软件。TensorFlow的神经网络以有状态数据流图的形式表示。图中的每个节点表示神...

1618
来自专栏葡萄城控件技术团队

Spread for Windows Forms快速入门(8)---单元格中用户动作触发的事件

这篇文章概括介绍了单元格的哪些事件是由控件的用户动作触发的。虽然它没有全面地列出的用户可能执行的每一个动作,但是它详细地描述了用户所使用的大部分普通操作所引发的...

2056
来自专栏人工智能

第三课:把tensorflow,模型和测试数据导入Android工程

关于Android项目的创建这里就不做赘述了,我们直接进入主题,看下如何把机器学习库和训练的模型导入一个安卓应用中。 导入 Inference Interfac...

2318
来自专栏weixuqin 的专栏

facenet 进行人脸识别测试

3362
来自专栏Java Edge

鸢尾花数据集实验安装 scikit-learn

31310
来自专栏技术之路

QT5 动态链接库的创建和使用

记录一下QT5 动态链接库的创建和使用 在文章的最后有完成的代码供下载 1.创建动态链接库 先新建一个库项目 ? 选择chose进入下一下页面,类型选择共享库,...

1696
来自专栏IMWeb前端团队

VS Code 中的自动完成

原文 vscode 1.6.x 发布了,有一系列的新特性,我个人比较开心见到 ts/js 语法着色有提升,我还专门搞了个 issue 吐槽过这个。 当然今天不...

2226
来自专栏专知

【前沿】Pytorch开源VQA神经网络模块,让你快速完成看图问答

【导读】近期,NLP专家Harsh Trivedi使用Pytorch实现了一个视觉问答的神经模块网络,想法是参考CVPR2016年的论文《Neural Modu...

2688

扫码关注云+社区