caffe-windows编译

Posted ayanwan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了caffe-windows编译相关的知识,希望对你有一定的参考价值。

#caffe版本:BVLC-caffe-windows

# 环境:windows 10\\CUDA8.0\\cuDNN-v5.1\\VS2013


1、GPU计算环境

(1)下载并安装CUDA8.0;

(2)下载cuDNN。载后解压会有三个文件夹bin、include、lib。将这三个文件夹复制到cuda的安装目录中:\\NVIDIA GPU ComputingToolkit\\CUDA\\v8.5。(cuda的安装目录中也有这三个文件夹,将这三个文件夹分别与原来存在的文件夹合并)。


2、caffe-windows

(1)下载官方caffe-windows并解压,将 .\\windows\\CommonSettings.props.example改名为CommonSettings.props;

(2)编译caffe-windows

        用vs2013打开.\\windows\\Caffe.sln 并将解决方案的配置改为release,点菜单栏上的“生成->生成解决方案”,会将整个项目全部生成,这个时间会比较长(由于官方caffe-windows 的版本使用了NuGet管理第三方开发包,所以需要在vs2013上安装NuGet)。生成成功之后的文件都在.\\Build\\x64\\Release中。


【PS】编译过程中可能遇到的错误:

   a)errorC2220: 警告被视为错误 - 没有生成“object”文件 (..\\..\\src\\caffe\\util\\math_functions.cpp)。

   解决方法:

           打开VS->项目->属性->配置属性->C/C++->常规->将警告视为错误修改为“否”,重新编译就好。

   b)错误 5 error MSB4062: 未能从程序集 S:\\NugetPackages\\OpenCV.2.4.10\\build\\native\\\\private\\coapp.NuGetNativeMSBuildTasks.dll 加载任务“NuGetPackageOverlay”。未能加载文件或程序集“file:///S:\\NugetPackages\\OpenCV.2.4.10\\build\\native\\private\\coapp.NuGetNativeMSBuildTasks.dll”或它的某一个依赖项。系统找不到指定的文件。 请确认 <UsingTask> 声明正确,该程序集及其所有依赖项都可用,并且该任务包含实现 Microsoft.Build.Framework.ITask 的公共类。 

    解决方法:

            进入libcaffe的属性——》生成事件——》预先生成事件——》在生成中使用——》否,生成事件——》后期生成事件——》在生成中使用——》否

            删除了NugetPackages文件夹下的OpenCV2.4.10文件夹了,然后进入项目的NuGet包还原重新还原OpenCV2.4.10包,再重新生成解决方案。


3、MNIST测试

(1)下载MNIST数据集,MNIST数据集包含四个文件,如下表所示:

train-images-idx3-ubyte.gz    训练集图片 - 55000 张 训练图片, 5000 张 验证图片

train-labels-idx1-ubyte.gz    训练集图片对应的数字标签

t10k-images-idx3-ubyte.gz    测试集图片 - 10000 张 图片

t10k-labels-idx1-ubyte.gz    测试集图片对应的数字标签

        下载完后解压得到对应的四个文件,这四个文件不能直接用于caffe的训练和测试。需要利用生成的convert_mnist_data.exe把四个文件转换为caffe所支持的leveldb或lmdb文件。

(2)转换 训练\\测试数据

a) 将四个文件放到 caffe-windows\\data\\mnist 文件夹下。然后运行脚本:get_mnist.sh;

b) 在caffe-windows\\examples\\mnist 目录下,新建一个convert-mnist-data.bat文件转换为训练数据,并在文件中添加代码:

set DATA=../../data/mnist
set TOOLS=../../Build/x64/Release
  
REM set BACKEND=lmdb
set BACKEND=leveldb 
  
echo "Creating %BACKEND%..."  
  
rd /s /q "mnist_train_%BACKEND%"  
rd /s /q "mnist_test_%BACKEND%"  
  
"%TOOLS%/convert_mnist_data.exe" %DATA%/train-images-idx3-ubyte %DATA%/train-labels-idx1-ubyte mnist_train_%BACKEND% --backend=%BACKEND%
"%TOOLS%/convert_mnist_data.exe" %DATA%/t10k-images-idx3-ubyte %DATA%/t10k-labels-idx1-ubyte mnist_test_%BACKEND% --backend=%BACKEND%
  
echo "Done."  
  
pause
(3)运行测试
      在caffe-windows根目录下新建一个run_mnist.bat,文件中代码:

.\\Build\\x64\\Release\\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt
pause



以上是关于caffe-windows编译的主要内容,如果未能解决你的问题,请参考以下文章

caffe-windows添加层

Visual Studio 2015+CUDA8.0+CUDNN5配置Caffe-windows(BLVC)

从零到一:caffe-windows(CPU)配置与利用mnist数据集训练第一个caffemodel

caffe-windows caffe-master 之Matlab中model的分类应用

caffe-windows caffe-master 之 matlab接口配置

caffe-Windows以mnist为例lmdb格式数据