caffe 试运行MNIST
转自:http://www.cnblogs.com/NanShan2016/p/5469942.html
编译完caffe后,在D:\caffe\caffe-master\caffe-master\build\x64\Release 中有caffe.exe
训练篇
1 *.sh文件如何执行?
直接将后缀名改成“bat”然后双击。 但是实际上好像好需要修改。
2 如何载入MNIST数据并且开始训练?
(1)首先明确我们需要设定两个重要的prototxt文件,它们分别是CAFFE_ROOT/examples/mnist下的lenet_train_test.prototxt和lenet_solver.prototxt。
①在此给出用于训练的MNIST数据mnist-train-leveldb以及mnist-test-leveldb的路径; 用于训练和测试的数据的路径
②在此定义这个网络都有哪些层,给出每一层的定义。 网络的结构,那些层,每层的设计
3)在lenet_solver.prototxt中:
①在此指明我们要训练的网络是lenet_train_test.prototxt,给出lenet_train_test.prototxt的路径; 上述网络运行时的参数及路径 详细见:http://blog.csdn.net/langb2014/article/details/50457774
②在此指定是用CPU还是GPU。
开始训练:在CAFFE_ROOT/examples/mnist下找到sh文件train_lenet.sh,在里面给出:
①caffe编译后生成的可执行文件exe的名称(带不带“.exe”都可以),后面跟“train”代表选择“训练”; caffe.exe要和train_lenet.sh在一个目录下 同时
②刚才写好的lenet_solver.prototxt的路径。 train_lenet.sh要指明网络求解路径,网络求解proto中包含数据路径
然后双击执行该脚本文件即可。
windows下脚本是.bat文件
caffe.exe train --solver=example2/lenet_solver.prototxt
pause
3、关于路径
如2中所述,在这两个prototxt和一个sh文件中,都要指明一些文件的路径。现总结如下:
(1)lenet_train_test.prototxt中:训练集mnist-train-leveldb与测试集mnist-test-leveldb的路径;
(2)lenet_solver.prototxt中:3-(1)的prototxt文件lenet_train_test.prototxt的路径;
(3)train_lenet.sh中:caffe可执行文件exe名称,以及3-(2)的prototxt文件lenet_solver.prototxt的路径。
能够让程序跑起来的设置方法(法一)
(1)在CAFFE_ROOT/x64/Debug中,新建一个文件夹example2,使该文件夹与可执行文件Caffe.exe处于同一路径中;
不要管examples和myexamples,这两个文件夹是师兄拷给我的时候就有了的,一个是caffe自带的,一个是师兄做的实验。总而言之与example2是独立关系。
(2)将刚才CAFFE_ROOT/examples/mnist下的mnist-test-leveldb、mnist-train-leveldb、lenet_train_test.prototxt以及lenet_solver.prototxt这四个文件全部拷贝到example2中去。
(3)设定prototxt文件,给出相应的路径。
①lenet_train_test.prototxt
这个文件即之前说的lenet_train.prototxt,为了便于区分在后面加了一个_test。给出相对路径如下:
此处给出绝对路径也是可以的。如:
②lenet_solver.prototxt
设置相对路径:
这里给出绝对路径也是可以的。如:
(4)将CAFFE_ROOT/examples/mnist下的train_lenet.sh文件拷贝到CAFFE_ROOT/x64/Debug中,使之与可执行文件Caffe.exe以及example2处于同一目录下。
打开train_lenet.sh文件,修改内容如下:
修改该文件后缀名为bat,双击train_lenet.bat,则可以成功跑起来
注意:一点是LEVELDB 而不是小写的 否则训练会出错
在网络训练完毕后,将在指定路径后生成四个文件,其中两个caffemodel文件lenet_iter_5000.caffemodel与lenet_iter_10000.caffemodel为我们测试时所需要的,它们分别存放着程序迭代5000次与10000次后网络的参数。
测试篇
将在对应的路径下生成四个文件:
2、在CAFFE/examples/mnist目录下新建一个文本文件,然后将后缀名改成sh。填入以下语句:
注意,这样填写只是为了便于观看,但直接保存后是不能跑起来的,必须把第2~5条语句全部放在同一行,语句与语句之间用一个空格隔开。
3、保存该sh文件,然后双击,即可出现训练情况:
caffe 试运行MNIST的更多相关文章
- Chapter 3 Start Caffe with MNIST Demo
先从一个具体的例子来开始Caffe,以MNIST手写数据为例. 1.下载数据 下载mnist到caffe-master\data\mnist文件夹. THE MNIST DATABASE:Yann L ...
- windows下使用caffe测试mnist数据集
在win10机子上装了caffe,感谢大神们的帖子,要入坑caffe-windows的朋友们看这里,还有这里,安装下来基本没什么问题. 好了,本博文写一下使用caffe测试mnist数据集的步骤. 1 ...
- Caffe系列4——基于Caffe的MNIST数据集训练与测试(手把手教你使用Lenet识别手写字体)
基于Caffe的MNIST数据集训练与测试 原创:转载请注明https://www.cnblogs.com/xiaoboge/p/10688926.html 摘要 在前面的博文中,我详细介绍了Caf ...
- 用vs2013(cpu-only)调试caffe的mnist
在调试Mnist例子之前,首先需要用vs2013编译好caffe.详情请参见: [caffe-Windows]caffe+VS2013+Windows无GPU快速配置教程 按照上述教程编译好caffe ...
- 【caffe】mnist训练日志
@tags caffe 前面根据train_lenet.sh改写了train_lenet.py后,在根目录下执行它,得到一系列输出,内容如下: I1013 10:05:16.721294 1684 c ...
- 使用caffe训练mnist数据集 - caffe教程实战(一)
个人认为学习一个陌生的框架,最好从例子开始,所以我们也从一个例子开始. 学习本教程之前,你需要首先对卷积神经网络算法原理有些了解,而且安装好了caffe 卷积神经网络原理参考:http://cs231 ...
- 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集
上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...
- Windows caffe 跑mnist实例
一. 装完caffe当然要来跑跑自带的demo,在examples文件夹下. 先来试试用于手写数字识别的mnist,在 examples/mnist/ 下有需要的代码文件,但是没有图像库. mn ...
- caffe测试mnist问题-error while loading shared libraries
问题描述 build/examples/mnist/convert_mnist_data.bin: error while loading shared libraries: libcudart.so ...
随机推荐
- 细心很重要---猜猜这个SQL执行的什么意思
今天在帮客户做语句优化的时候,突然遇到这样一个语句,类似下面的例子(原语句是个update) 例子中使用AdventureWorks数据中的两个表. productID 是[Production].[ ...
- UWP开发随笔——UWP新控件!AutoSuggestBox!
摘要 要开发一款优秀的application,控件肯定是必不可少的,uwp就为开发者提供了各种各样的系统控件,AutoSuggestBox就是uwp极具特色的控件之一,也是相对于之前win8.1的ua ...
- dojo/query源码解析
dojo/query模块是dojo为开发者提供的dom查询接口.该模块的输出对象是一个使用css选择符来查询dom元素并返回NodeList对象的函数.同时,dojo/query模块也是一个插件,开发 ...
- JavaScript函数柯里化
函数式 JavaScript是以函数为一等公民的函数式语言.函数在JavaScript中也是一个对象(继承制Function),函数也可以作为参数传递成函数变量.最近几年函数式也因为其无副作用的特性. ...
- 走进AngularJs(三)自定义指令-----(上)
一.有感而发的一些话 在学习ng之前有听前辈说过,angular上手比较难,初学者可能不太适应其语法以及思想.随着对ng探索的一步步深入,也确实感觉到了这一点,尤其是框架内部的某些执行机制,其复杂程度 ...
- Gradle中的buildScript代码块
在编写Gradle脚本的时候,在build.gradle文件中经常看到这样的代码: build.gradle 1 2 3 4 5 6 7 8 9 buildScript { repositories ...
- Behind RabbitMQ Exchange Types
what's the underlying philosophy behind "exchange types"? In a word, it is all about imple ...
- 爱上MVC~一个Action多套View模版的设计
回到目录 模块化 这个问题是在做模块化设计时出现的,在Lind.DDD.Plugins模块里,需要对应的模块实体,模块管理者,模块标识接口等,开发时,如果你的功能点属于一个模块,需要实现IPlugin ...
- Markdown入门基础
// Markdown入门基础 最近准备开始强迫自己写博文,以治疗严重的拖延症,再不治疗就“病入骨髓,司命之所属,无奈何”了啊.正所谓“工欲善其事,必先利其器”,于是乎在写博文前,博主特地研究了下博文 ...
- Atiit 如何手写词法解析器
Atiit 如何手写词法解析器 1.1. 通过编程直接从正则->nfa->dfa->表驱动词法解析一条龙自动生成.那是用程序自动生成是需要这样的,自己手写完全不必要这么复杂1 1.2 ...