@author:oneBite
本文简述如何在windows环境下,运行caffe的“hello world”例程
体会适用caffe的流程:转换输入数据格式>在solver.prototxt中配置训练参数,在train.prototxt中配置网络结构和输入输出、激活函数>调用caffe train and test

"hello world"-运行识别手写数字的例程

先简要概述Linux下的运行caffe helloworld例程过程
编译caffe>下载相应的训练数据到指定目录>然后运行sh文件训练和测试即可。
Shell脚本所做的主要工作,调用编译得到相应的bin文件:
1 将输入数据转化到指定的数据格式-LMDB。文件夹中附有源码:vert_mnist_data.cpp;
2 运行caffe命令(即caffe.bin,是编译得到的可执行文件),训练网络>测试数据。在命令行中运行caffe –help可以看到些许帮助。

Windows
而windows下,solution编译之后也获得了很多exe文件,运行例程时,需要我们自己调用exe文件执行跟linux上一样的逻辑。
在vs2013中,可以看到编译生成的可执行文件的输出路径。
在project的properties>general>Output Directory中
其中的变量可以参看https://msdn.microsoft.com/en-us/library/c02as0cs.aspx。在本机上,目录是caffe-windows\caffe-windows\Build\x64\Debug。
本次例程需要使用convert_mnist_data.exe,caffe.exe

查看命令帮助:
E:\work17\caffe-windows\caffe-windows\Build\x64\Debug>
.\convert_mnist_data.exe –help
使用命令时,也可以参看linux端的sh文件中是如何调用相应的bin文件的,有一定的参考价值。Caffe官方并没有给出较为详细的reference手册。
convert_mnist_data.exe用于将mnist上下载的数据集转化为lmdb数据格式。可以看一下convert_mnist_data的源代码,了解lmdb格式内容。
命令使用格式 [flag] 输入数据 输入label文件 输出文件夹

Windows process

上述大致介绍了caffe运行的原理。注意调用命令时,cmd所处的目录为caffe的主目录,本机为E:\work17\caffe-windows\caffe-windows。

1 调用convert_mnist_data。
E:\work17\caffe-windows\caffe-windows>路径\convert_mnist_data \解压之后的image文件 \解压之后的label文件 \文件输出目录
运行一次之后,在指定的输出目录下就会出现data.mdb和lock.mdb文件

2 调用caffe,训练网络权值。(还是要注意运行exe时,cmd所处的当前目录)
\目录\caffe.exe train --solver=\目录\lenet_solver.prototxt
#solver.prototxt#
定义了训练时所需的参数
内容摘要:
#定义了描述训练网络结构的prototxt文件的位置
net: "examples/mnist/lenet_train_test.prototxt"
# solver mode: CPU or GPU,这里需要进行更改,因为上次编译的caffe,修改了config文件,编译得到的是不适用GPU的caffe.exe
solver_mode: CPU

#lenet_train_test.prototxt#
在lenet_train_test中设置训练和测试的数据来源 backend,大概格式的意思
data_param {
source: "examples/mnist/mnist_train_lmdb"
batch_size: 64
backend: LMDB
}

3 调用caffe,测试网络。
权值文件 caffemodel
caffe test -model train_test.prototxt -weights xxxx.caffemodel -iteration 100

上手Caffe(二)的更多相关文章

  1. Netron开发快速上手(二):Netron序列化

    Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...

  2. Laravel入门及实践,快速上手ThinkSNS+二次开发

    温馨提示: l 本文纯干货,文字和代码居多,且适合零基础Laravel学习者: l 本文会新建一个名为 blog 的 Laravel 程序,这是一个非常简单的博客. l  欢迎随时关注ThinkSNS ...

  3. windows+caffe(二)——图片转换为levedb格式

    借鉴于langb2014的  http://blog.csdn.net/langb2014/article/details/50458520 与liukailun09的  http://blog.cs ...

  4. socket网络编程快速上手(二)——细节问题(5)(完结篇)

    6.Connect的使用方式 前面提到,connect发生EINTR错误时,是不能重新启动的.那怎么办呢,是关闭套接字还是直接退出进程呢?如果EINTR前,三次握手已经发起,我们当然希望链路就此已经建 ...

  5. socket网络编程快速上手(二)——细节问题(4)

    5.慢系统调用及EINTR 还记得前面readn和writen函数么?里面有个EINTR,现在就来谈谈这个,这个很重要. Linux世界有个叫信号的东西,感觉他就像一位隐士,很少遇到他,而他又无处不在 ...

  6. WCF快速上手(二)

    服务端是CS程序,客户端(调用者)是BS程序 一.代码结构: 二.服务接口Contract和实体类Domain INoticeService: using Domain; using System; ...

  7. 上手Caffe(一)

    @author:oneBite 本文记录编译使用caffe for windows 使用环境 VS2013 ultimate,win7 sp1,caffe-windows源码(从github上下载ca ...

  8. mac 下安装caffe(二)

    使用Anaconda Python 1.brew edit opencv args << "-DPYTHON_LIBRARY=#{py_lib}/libpython2.7.#{d ...

  9. Apache OFBIZ高速上手(二)--MVC框架

    继续上一篇博客,本篇博客介绍OFBiz的MVC框架. 1.OFBiz特点 OFBiz最基本的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具.包含实体引擎.服务引擎.消息引擎 ...

随机推荐

  1. UIView设置阴影无效的原因之一

    本想在底部的按钮设置个阴影, 代码如下: self.layer.shadowColor = [UIColor blackColor].CGColor; self.layer.shadowOffset ...

  2. stixel提升思路总结

    1.用psmnet获得更好的disparity 2.用edgebox获得整个rgb图片的边缘,然后通过原本的stixel的上下边缘去寻找最优,用两个的边缘去重新得到一个新的边缘,但获得的轮廓不仅仅是外 ...

  3. 动画利器animate.css

    使用过CSS3编写动画的同学一定感叹CSS3的强大,但是也会感到书写的麻烦.每次都要计算动画的各个参数,十分麻烦.有没有一个库能封装一些常用的CSS3动画效果.答案是肯定的,animate.css就是 ...

  4. 记一次EBS正式环境补丁安装的过程

    因菏泽能源上线需求,需要在8009上修复集团8000环境上已经修复的所有补丁程序,修复前做应用及数据库层备份,完成修复后解决并发管理器无法启动的问题.此为概述. 应用层备份 应用层的备份采用直接压缩备 ...

  5. docker快速安装jenkins

    用过docker的人,可能真的很难忍受再一步步二进制安装了,好了话不多说,感慨一下jenkins实现自动化发布构建真的很方便. 推荐一个学习的好地方https://m.w3cschool.cn/jen ...

  6. MySQL选择的执行计划性能底下原因分析--实战案例分析

    MySQL是自动会选择它认为好的执行划,但是MySQL毕竟是程序,还没有达到像人类思考这么智能,还是通过一些按部就班的算法实现最优执行计划(基于cost)的选择.下面就是一个真实的案例,带你来看看My ...

  7. Ansible工作架构和原理

    特性 模块块化调用持定的模块,完成持定任务 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块 支持自定义模块 基于Python语法头现 部署简单,基于python和SSH(默认已 ...

  8. 使用inotify-tools与rsync构建实时备份系统

    使用inotifywait监控文件变动 inotifywait是 inotify-tools 包中提供的一个工具,它使用 inotify API 来监控文件/目录中的变动情况. 在archlinux上 ...

  9. 记 判断手机号运营商function

    /* 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 联通:130.131.132.152.155.156.185.186 电信: ...

  10. python flask学习第2天 URL中两种方式传参

    新创建项目   自己写个url映射到自定义的视图函数 在url中传递参数 app.py from flask import Flask app = Flask(__name__) @app.route ...