Windows下caffe安装详解(仅CPU)

原文链接:链接

本文大多转载自 http://blog.csdn.net/guoyk1990/article/details/52909864,加入部分自己实战心得。

1、环境:windows 7\VS2013

2、caffe-windows准备

(1)下载官方caffe-windows并解压,将 .\windows\CommonSettings.props.example备份,并改名为CommonSettings.props。如图4所示:

Windows下caffe安装详解(仅CPU)_第1张图片

图 4:修改后的CommonSettings.props文件

附带说明,现在最新版的github已经更新,没有上述文件,根据大佬说法用cmake编译后能产生sln文件,笔者不才,并不会,这里提供百度云盘的老版本:

caffe提供Windows工具包(caffe-windows):https://github.com/BVLC/caffe/tree/windows   百度云下载地址:链接:http://pan.baidu.com/s/1bp1BFH1 密码:phf3

(2)关于CommonSettings.props文件的一点说明。

  
  
      
      
        $(SolutionDir)..\Build  
          
        false  
        true  
        7.5  
          
        false  
      
        false  
          
  
          
        compute_35,sm_35;compute_52,sm_52  
  
          
          
        $(SolutionDir)\scripts  
      
      
        cublas.lib;cuda.lib;curand.lib;cudart.lib  
      
  
      
        cudnn.lib;$(CudaDependencies)  
      
      
        $(CuDnnPath)\cuda\lib\x64;$(LibraryPath)  
        $(CuDnnPath)\cuda\include;$(IncludePath)  
      
  
      
        $(BuildDir)\$(Platform)\$(Configuration)\  
        $(BuildDir)\Int\$(ProjectName)\$(Platform)\$(Configuration)\  
      
      
        $(OutDir);$(CUDA_PATH)\lib\$(Platform);$(LibraryPath)  
        $(SolutionDir)..\include;$(SolutionDir)..\include\caffe\proto;$(CUDA_PATH)\include;$(IncludePath)  
      
      
        C:\Miniconda2\  
        $(PythonDir)\libs;$(LibraryPath)  
        $(PythonDir)\include;$(IncludePath)  
      
      
        C:\Program Files\MATLAB\R2014b  
        $(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)  
        $(MatlabDir)\extern\include;$(IncludePath)  
      
      
          
            CPU_ONLY;%(PreprocessorDefinitions)  
          
      
      
          
            USE_CUDNN;%(PreprocessorDefinitions)  
          
          
            USE_CUDNN  
          
      
      
          
            WITH_PYTHON_LAYER;BOOST_PYTHON_STATIC_LIB;%(PreprocessorDefinitions)  
          
      
      
          
            MATLAB_MEX_FILE;%(PreprocessorDefinitions)  
          
      
      
          
            false  
            true  
            _SCL_SECURE_NO_WARNINGS;USE_OPENCV;USE_LEVELDB;USE_LMDB;%(PreprocessorDefinitions)  
            true  
          
      
      
          
            Full  
            NDEBUG;%(PreprocessorDefinitions)  
            MultiThreadedDLL  
            true  
          
          
            true  
            true  
            UseLinkTimeCodeGeneration  
            true  
          
      
      
          
            Disabled  
            _DEBUG;%(PreprocessorDefinitions)  
            MultiThreadedDebugDLL  
          
          
            true  
          
      
  

3、编译caffe-windows

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

PS:生成时可能遇到的错误:errorC2220: 警告被视为错误 - 没有生成“object”文件 (..\..\src\caffe\util\math_functions.cpp)。这个错误可参考Sunshine_in_Moon 的解决方案。

4、测试

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

表1: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的训练和测试。需要利用第4步生成的convert_mnist_data.exe把四个文件转换为caffe所支持的leveldb或lmdb文件。

 

2)转换 训练\测试数据

 

a)  中的四个文件放到 . \examples\mnist\mnist_data文件夹下。

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

 

[python] view plain copy

 

  1. Build\x64\Release\convert_mnist_data.exe --backend=lmdbexamples\mnist\mnist_data\train-images.idx3-ubyteexamples\mnist\mnist_data\train-labels.idx1-ubyte examples\mnist\mnist_data\mnist_train_lmdb  
  2. pause  

 

其中--backend=lmdb 表示转换为lmdb格式,若要转换为leveldb将其改写为--backend=leveldb 即可。

再新建一个convert-mnist-data-test.bat转换测试数据,代码为:

 

[python] view plain copy

 

  1. Build\x64\Release\convert_mnist_data.exe --backend=lmdb examples\mnist\mnist_data\t10k-images.idx3-ubyte examples\mnist\mnist_data\t10k-labels.idx1-ubyte examples\mnist\mnist_data\mnist_test_lmdb  
  2. Pause  

 

Ps:(1)convert_mnist_data.exe的命令格式为:

convert_mnist_data [FLAGS] input_image_file input_label_file output_db_file

[FLAGS]:转换的文件格式可取leveldb或lmdb,示例:--backend=leveldb

Input_image_file:输入的图片文件,示例:train-images.idx3-ubyte

input_label_file:输入的图片标签文件,示例:train-labels.idx1-ubyte

output:保存输出文件的文件夹,示例:mnist_train_lmdb

(2)如果感觉很麻烦,也可以直接下载我转换好的MNIST文件(leveldb和lmdb)。

3)运行测试

 

(1)将第2)步中转换好的训练\测试数据集(mnist_train_lmdb\ mnist_train_lmdb或mnist_train_leveldb\mnist_train_leveldb)文件夹放在.\examples\mnist中。

(2)在caffe-windows根目录下新建一个run.bat,文件中代码:

 

[python] view plain copy

 

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

 

保存并双击运行,如果运行成功,说明caffe配置成功了。

注意1使用leveldb或lmdb格式的数据时,需要将lenet_train_test.prototxt 文件里面的data_param-> source和data_param-> backend相对应,如图5红框所标注处。

 

Windows下caffe安装详解(仅CPU)_第2张图片

图 5:lenet_train_test.prototxt文件中需要注意与训练\测试数据对应的部分

注意2将lenet_solver.prototxt 文件里面的最后一行改为solver_mode:CPU。

4)训练自己的数据

这部分可以参考下面的几个博客:

1.在caffe上跑自己的数据

2.windows下caffe训练自己的数据

 

reference:

官方Caffe-windows 配置与示例运行

【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程

一个直接用编译好的caffe的方法:

windows7 + Python3.5 + caffe

你可能感兴趣的:(机器学习)