http://blog.csdn.net/naaaa/article/details/52118437

2016-08-04 15:33 1316人阅读 评论(1) 收藏 举报
 分类:
caffe

版权声明:本文为博主原创文章,未经博主允许不得转载。

1.下载vs2013,安装

http://download.microsoft.com/download/0/7/5/0755898A-ED1B-4E11-BC04-6B9B7D82B1E4/VS2013_RTM_ULT_CHS.iso

2.下载caffe源代码,解压

https://github.com/Microsoft/caffe

将caffe-master/windows下CommonSettings.props.example后面的.example去掉。

3.gpu配置

带gpu的配置:

下载cuda:

https://developer.nvidia.com/cuda-downloads

根据自己的显卡选择下载的版本

双击exe进行安装

下载cudnn:

https://developer.nvidia.com/cudnn

下载v4或v5版本

解压后分别将lib、include、bin文件夹下的文件复制到cuda安装目录下的lib、include、bin文件夹下

(默认为:c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x)

无gpu的配置:

记事本打开caffe-master/windows下的CommonSettings.prop修改:

<CpuOnlyBuild>false</CpuOnlyBuild>为<CpuOnlyBuild>true</CpuOnlyBuild>

<UseCuDNN>true</UseCuDNN>为<UseCuDNN>false</UseCuDNN>

编译每个项目前设置:

项目->属性->配置属性->c/c++->预处理器->预处理器定义,添加一项CPU_ONLY

4.生成libcaffe

打开caffe-mastetr/windows下的Caffe.sln

所有项目都要用到libcaffe.lib,所以第一个要编译这个项目。

libcaffe有很多相关的库,工程里已经配置好了可以用NuGet进行下载。

我们需要安装NuGet包管理器并启动它。

下载Nuget:

工具->扩展和更新->联机,搜索NuGet,下载Nuget 包管理

(也可以网站直接下载http://docs.nuget.org/consume/installing-nuget,双击安装)

启动Nuget:

右键工程->启用NuGet程序包还原。

接着生成libcaffe会在caffe-master\Build\x64\Debug下生成libcaffe.lib

(后续所有的exe文件也都是生成在这个目录)

5.cifar10训练数据

http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz

下载数据到caffe-master\data\cifar10,解压。

下载的数据为binary格式,需要转换为leveldb。

编译convert_cifar_data项目,生成convert_cifar_data.exe。

打开cmd,cd到caffe-master\Build\x64\Debug,输入命令(后续所有命令都是在这个路径下):

convert_cifar_data.exe ../../../data/cifar10/cifar-10-batches-bin ../../../data/cifar10 leveldb

在caffe-master\data\cifar10文件夹下生成cifar10_test_leveldb和cifar10_train_leveldb文件夹

6.求数据图像均值

编译compute_image_mean项目,生成compute_image_mean.exe

cmd输入命令:

compute_image_mean.exe ../../../data/cifar10/cifar10_train_leveldb ../../../data/cifar10/mean.binaryproto --backend=leveldb

7.训练cifar10模型

打开caffe-master\examples\cifar10\cifar10_quick_solver.prototxt文件:

修改路径:examples/cifar10 为 ../../../examples/cifar10(两处)

修改最后一行为:solver_mode: CPU(用gpu就不用改这一项)

打开caffe-master\examples\cifar10\ cifar10_quick_train_test.prototxt文件:

修改backend: LMDB 为 backend: LEVELDB(两处)

修改mean_file: "examples/cifar10/mean.binaryproto" 为 mean_file:"../../../data/cifar10/mean.binaryproto"(两处)

修改source: "examples/cifar10/cifar10_train_lmdb" 为 source:"../../../data/cifar10/cifar10_train_leveldb"

修改source: "examples/cifar10/cifar10_test_lmdb" 为 source:"../../../data/cifar10/cifar10_test_leveldb"

编译caffe项目,生成caffe.exe

cmd输入命令:caffe.exe train --solver=../../../examples/cifar10/cifar10_quick_solver.prototxt  训练网络

CPU训练会训练好久,训练完成后caffe-master/examples/cifar10文件夹下生成

cifar10_quick_iter_4000.caffemodel.h5

cifar10_quick_iter_4000.solverstate.h5

8.对图像进行分类

在caffe-master\data\cifar10下新建文本文件synset_words.txt。

文件内容是cifar10里面包含的分类种类,如下:

  1. airplane
  2. automobile
  3. bird
  4. cat
  5. deer
  6. dog
  7. frog
  8. horse
  9. ship
  10. truck

编译classification项目,生成classification.exe

命令行输入:

classification.exe ../../../examples/cifar10/cifar10_quick.prototxt ../../../examples/cifar10/cifar10_quick_iter_4000.caffemodel.h5 ../../../data/cifar10/mean.binaryproto ../../../data/cifar10/synset_words.txt ../../../examples/images/cat.jpg

就会出来分类结果,我的结果:

  1. ---------- Prediction for ../../../examples/images/cat.jpg ----------
  2. 0.9784 - "deer"
  3. 0.0100 - "cat"
  4. 0.0094 - "bird"
  5. 0.0017 - "frog"
  6. 0.0004 - "dog"

参考博文:http://blog.csdn.net/zb1165048017/article/details/51476516

caffe搭建--WINDOWS+VS2013下生成caffe并进行cifar10分类测试的更多相关文章

  1. windows环境下 生成git公钥和私钥

    windows环境下 生成公钥和私钥 上传代码到远程仓库的时候需要秘钥进行验证是否本人上传的.打开Git目录下的Git Bash 输入ssh-keygen,回车 可直接不输入路径,使用默认路径(c/U ...

  2. 搭建windows环境下(nginx+mysql+php)开发环境

    搭建windows环境下(nginx+mysql+php)开发环境   1. 所需准备应用程序包        1.1 nginx 程序包nginx-1.0.4.zip或其他版本(下载地址: http ...

  3. 番外篇:搭建Windows环境下的RabbitMQ环境

    搭建Windows环境下的Rabbitmq环境 下载erlang语言包OTP.官网地址: https://www.erlang.org/downloads 如果下载不了,可以选择百度网盘下载,里面的版 ...

  4. CAFFE学习笔记(三)在VS2013下生成需要的exe文件

    如我们所知,CAFFE_ROOT下有一个文件夹叫tools,里面中有许多cpp文件,它们各自有其不同的功能.但是很显然,当我们要完成某样工作时,我们是不能直接用cpp文件的,只能用exe文件.如何利用 ...

  5. 转 Windows+VS2013爆详细Caffe编译安装教程

    1. 安装cuda Cuda是英伟达推出的GPU加速运算平台 我这里安装的是cuda7.5,已经安装过的忽略,还没有安装过的这里有安装教程.windows下面安装还是非常简单的. 点击打开链接    ...

  6. 基于chyh1990/caffe-compact在windows vs2013上编译caffe步骤

    1.      从https://github.com/chyh1990/caffe-compact下载caffe-compact代码: 2.      通过CMake(cmake-gui)生成vs2 ...

  7. [经验分享]Windows系统下生成IOS证书

    我使用ApiCloud开发APP,开发后需要生成IOS的证书才能在项目开发控制台中进行编译,于是我在网上大海捞针似的寻找办法. 官方文档提供了使用苹果系统下生成IOS证书的步骤,对于我这个没有imac ...

  8. PHP环境搭建-Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  9. Spring 5.2.x 源码环境搭建(Windows 系统环境下)

    前期准备 1.确保本机已经安装好了 Git 2.Jdk 版本至少为 1.8 3.安装好 IntelliJ IDEA (其他开发工具,如 eclipse.Spring Tool Suite 等也是可以的 ...

随机推荐

  1. NOJ——1656搬砖(DP)

    [1656] 搬砖 时间限制: 2000 ms 内存限制: 65535 K 问题描述 开学了,万恶的大二学长们又要领着大一的鲜肉们一起敲代码搬砖了,这不,著名的杨神拿着n块砖头,当然他把这n块砖头的重 ...

  2. 模拟tap事件和longTap事件

    移动端模拟tap和longTap事件,基本原理就是在touchstart和touchend事件中,计算触摸的位移和时间差,位移在一定范围内(轻微滑动),时间小于150ms为tap事件,时间大于300m ...

  3. 浅谈android反调试之 签名校验

    反调试原理 很多时候,我们都需要进行修改修改应用程序的指令,然后重打包运行,重新打包就需要充签名. 利用签名的变化我们用于反调试.反调试实现代码如下: 为了更加隐藏,比较函数可能在SO层进行实现,如下 ...

  4. mybatis学习(九)——动态sql

    MyBatis 的强大特性之一便是它的动态 SQL.可以根据不同条件拼接 SQL 语句. 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似.主要由以下几种元素. if wh ...

  5. testng依赖

    Testng提供了两种依赖实现 1.强制依赖:某个测试用例之前需要执行的依赖链中如果有一个失败,那么接下来所有的测试都不会被执行 2.顺序依赖(软依赖):顺序依赖的用处更多是用来检测一个测试链是否按照 ...

  6. python解析yaml文件

    YAML语法规则: http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/ 下载PyYAML: http://www.yaml.org/ 解压 ...

  7. Java 学习(2):java 基础概念

    Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.以 ...

  8. Java-堆排序

    public class Main { public static void main(String[] args) { int a[] = {8, 2, 5, 6, 4, 8, 9, 7, 14, ...

  9. JSON 序列化与弱类型

    一.C#中JSON序列化有多种方式: 使用“DataContractJsonSerializer ”类时需要, 1.引用程序集 System.Runtime.Serialization 和 Syste ...

  10. Linq技巧4——怎么在.NET 3.5 SP1中伪造一个外键属性

    在.NET 4.0 的EF 中,增加了FK Associations 的功能,但是在.NET 3.5 SP1 中,仅仅支持独立的关联,这意味着FK 栏位不能作为实体的属性来使用,也就是说在使用的时候, ...