上手Caffe(二)
@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(二)的更多相关文章
- Netron开发快速上手(二):Netron序列化
Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...
- Laravel入门及实践,快速上手ThinkSNS+二次开发
温馨提示: l 本文纯干货,文字和代码居多,且适合零基础Laravel学习者: l 本文会新建一个名为 blog 的 Laravel 程序,这是一个非常简单的博客. l 欢迎随时关注ThinkSNS ...
- windows+caffe(二)——图片转换为levedb格式
借鉴于langb2014的 http://blog.csdn.net/langb2014/article/details/50458520 与liukailun09的 http://blog.cs ...
- socket网络编程快速上手(二)——细节问题(5)(完结篇)
6.Connect的使用方式 前面提到,connect发生EINTR错误时,是不能重新启动的.那怎么办呢,是关闭套接字还是直接退出进程呢?如果EINTR前,三次握手已经发起,我们当然希望链路就此已经建 ...
- socket网络编程快速上手(二)——细节问题(4)
5.慢系统调用及EINTR 还记得前面readn和writen函数么?里面有个EINTR,现在就来谈谈这个,这个很重要. Linux世界有个叫信号的东西,感觉他就像一位隐士,很少遇到他,而他又无处不在 ...
- WCF快速上手(二)
服务端是CS程序,客户端(调用者)是BS程序 一.代码结构: 二.服务接口Contract和实体类Domain INoticeService: using Domain; using System; ...
- 上手Caffe(一)
@author:oneBite 本文记录编译使用caffe for windows 使用环境 VS2013 ultimate,win7 sp1,caffe-windows源码(从github上下载ca ...
- mac 下安装caffe(二)
使用Anaconda Python 1.brew edit opencv args << "-DPYTHON_LIBRARY=#{py_lib}/libpython2.7.#{d ...
- Apache OFBIZ高速上手(二)--MVC框架
继续上一篇博客,本篇博客介绍OFBiz的MVC框架. 1.OFBiz特点 OFBiz最基本的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具.包含实体引擎.服务引擎.消息引擎 ...
随机推荐
- 移动端定制软键盘样式 配置input属性的type属性
1.当你的input输入的数据为链接地址时type属性可改为 type=url 最下面一栏就会出现.com 提高用户体验 2.当你的input输入的数据为email时type属性可改为 type=em ...
- MySQL 中while loop repeat 的基本用法
-- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法: while 条件 DO 循 ...
- SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件
简介 SVProgressHUD是简单易用的显示器,用于指示一个持续进行的任务的进度. 项目主页: SVProgressHUD 最新示例: 点击下载 快速入门 安装 通过Cocoapods pod ' ...
- Python——列表
应用场景,要统计大量的人员信息.就可以用列表的形式进行.name = ['邱秀','玄永俊','杨栋豪']查:print(name[2],name[0]) #取号码进行识别print(name[1:3 ...
- 聊聊我这两年都在忙什么,IT技术男如何转型!
从09年开始,从事软件测试工作:至今六年有余: 从当初的简单的功能测试,到后来的整体系统测试,性能测试,至公司测试负责人: 我常常在想,IT技术男,有哪些转型机会,是不是得一辈子从事测试这个职业(注: ...
- 记一次微信小程序在安卓的白屏问题
在做小程序的时候,做到了一个限时商品售卖,用到了倒计时,因为这个原因导致了安卓手机上使用小程序时,将小程序放入后台运行一段时间后,再次进入小程序后出现了页面白屏或者点击事件失效的情况,这里记录下 1. ...
- python爬虫-简单使用xpath下载图片
首先 1.为方便以下进行 谷歌浏览器里要安装xpath脚本 2.下载一个lmxl 命令:pip install lxml 3. 以下三张图是一个,当时爬的 <糗事百科>里的图片 值 ...
- strak组件(9):关键字搜索
效果图: 在列表视图函数增加搜索功能. 新增函数 def get_search_list(self) 钩子方法,获取搜索条件 一.strak组件 strak/service/core_func.py ...
- c++ tie,ignore
ignore 一个未指定的类型对象,任何值都可以没有影响地赋值给它.通常使用tie来解压一个元组,作为可以忽略的占位符. #include <iostream> #include < ...
- 宁夏邀请赛F FLOYD
Moving On Firdaws and Fatinah are living in a country with nn cities, numbered from 11 to nn.Each ci ...