您的位置:首页 > 编程语言 > Python开发

win下官方BLVC版本caffe配置及anaconda2安装与python下配置

2017-12-21 10:02 387 查看
                            大体思路:先安装好python2.7解释器,然后安装好anaconda2,再配置caffe,再将caffe中的python文件拷贝到anaconda2中,再安装protobuf即可。

         1. 安装python2.7

            此步忽略不计,网上自行百度,记得添加环境变量。另外记得把pip也安装下,便于缺库时利用pip进行安装。

         2. 安装anaconda2

           anaconda2对应的python版本是python2.7,因此注意安装的时候是anaconda2的64位。  

            注意针对python的环境变量,在cmd中运行时一般是以在环境变量PATH中放在前面的首先搜索到并考虑加载进来。安装anaconda2后,会默认将其python.exe的路

径放在系统环境变量的PATH的前面。

        3.  配置caffe,很重要

           首先,在BVLC上以git的方式下载caffe:

C:\Projects> git clone https://github.com/BVLC/caffe.git[/code]           然后:

         

cd caffe

        再次:

git checkout windows

         再修改sripts\build_win.cmd。本人配置采用vc12+python2.7+matlab+Anoconda2-4.3.1。

         修改build_win.cmd主要注意的是修改第7行MSVC_VERSION=12    ,将第8行WITH_NINJA=0,将17行BUILD_MATLAB=1,

将72行MSVC_VERSION=12,将74行WITH_NINJA=0,将91行BUILD_MATLAB=1,在154行配置正确的vs2013对应的MSVC_VERSION的vc12路径:set batch_file=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat。为了配置cudnn特将在172行末尾加上
 -DCUDNN_ROOT=C:\cuda ^。

        build_win.cmd内容如下:

@echo off

@setlocal EnableDelayedExpansion

:: Default values

if DEFINED APPVEYOR (

    echo Setting Appveyor defaults

    if NOT DEFINED MSVC_VERSION set MSVC_VERSION=12

    if NOT DEFINED WITH_NINJA set WITH_NINJA=0

    if NOT DEFINED CPU_ONLY set CPU_ONLY=0

    if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=Auto

    if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release

    if NOT DEFINED USE_NCCL set USE_NCCL=0

    if NOT DEFINED CMAKE_BUILD_SHARED_LIBS set CMAKE_BUILD_SHARED_LIBS=0

    if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=2

    if NOT DEFINED BUILD_PYTHON set BUILD_PYTHON=1

    if NOT DEFINED BUILD_PYTHON_LAYER set BUILD_PYTHON_LAYER=1

    if NOT DEFINED BUILD_MATLAB set BUILD_MATLAB=1

    if NOT DEFINED PYTHON_EXE set PYTHON_EXE=python

    if NOT DEFINED RUN_TESTS set RUN_TESTS=1

    if NOT DEFINED RUN_LINT set RUN_LINT=1

    if NOT DEFINED RUN_INSTALL set RUN_INSTALL=1

    :: Set python 2.7 with conda as the default python

    if !PYTHON_VERSION! EQU 2 (

        set CONDA_ROOT=D:\soft\python\Anoconda2-4.3.1    //貌似不需要设置该行

    )

    :: Set python 3.5 with conda as the default python

    if !PYTHON_VERSION! EQU 3 (

        set CONDA_ROOT=C:\Miniconda35-x64

    )

    set PATH=!CONDA_ROOT!;!CONDA_ROOT!\Scripts;!CONDA_ROOT!\Library\bin;!PATH!

    :: Check that we have the right python version

    !PYTHON_EXE! --version

    :: Add the required channels

    conda config --add channels conda-forge

    conda config --add channels willyd

    :: Update conda

    conda update conda -y

    :: Download other required packages

    conda install --yes cmake ninja numpy scipy protobuf==3.1.0 six scikit-image pyyaml pydotplus graphviz

    if ERRORLEVEL 1  (

      echo ERROR: Conda update or install failed

      exit /b 1

    )

    :: Install cuda and disable tests if needed

    if !WITH_CUDA! == 1 (

        call %~dp0\appveyor\appveyor_install_cuda.cmd

        set CPU_ONLY=0

        set RUN_TESTS=0

        set USE_NCCL=1

    ) else (

        set CPU_ONLY=1

    )

    :: Disable the tests in debug config

    if "%CMAKE_CONFIG%" == "Debug" (

        echo Disabling tests on appveyor with config == %CMAKE_CONFIG%

        set RUN_TESTS=0

    )

    :: Disable linting with python 3 until we find why the script fails

    if !PYTHON_VERSION! EQU 3 (

        set RUN_LINT=0

    )

) else (

    :: Change the settings here to match your setup

    :: Change MSVC_VERSION to 12 to use VS 2013

    if NOT DEFINED MSVC_VERSION set MSVC_VERSION=12

    :: Change to 1 to use Ninja generator (builds much faster)

    if NOT DEFINED WITH_NINJA set WITH_NINJA=0

    :: Change to 1 to build caffe without CUDA support

    if NOT DEFINED CPU_ONLY set CPU_ONLY=0

    :: Change to generate CUDA code for one of the following GPU architectures

    :: [Fermi  Kepler  Maxwell  Pascal  All]

    if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=Auto

    :: Change to Debug to build Debug. This is only relevant for the Ninja generator the Visual Studio generator will generate both Debug and Release configs

    if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release

    :: Set to 1 to use NCCL

    if NOT DEFINED USE_NCCL set USE_NCCL=0

    :: Change to 1 to build a caffe.dll

    if NOT DEFINED CMAKE_BUILD_SHARED_LIBS set CMAKE_BUILD_SHARED_LIBS=0

    :: Change to 3 if using python 3.5 (only 2.7 and 3.5 are supported)

    if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=2

    :: Change these options for your needs.

    if NOT DEFINED BUILD_PYTHON set BUILD_PYTHON=1

    if NOT DEFINED BUILD_PYTHON_LAYER set BUILD_PYTHON_LAYER=1

    if NOT DEFINED BUILD_MATLAB set BUILD_MATLAB=0

    :: If python is on your path leave this alone

    if NOT DEFINED PYTHON_EXE set PYTHON_EXE=python

    :: Run the tests

    if NOT DEFINED RUN_TESTS set RUN_TESTS=0

    :: Run lint

    if NOT DEFINED RUN_LINT set RUN_LINT=0

    :: Build the install target

    if NOT DEFINED RUN_INSTALL set RUN_INSTALL=1

)

:: Set the appropriate CMake generator

:: Use the exclamation mark ! below to delay the

:: expansion of CMAKE_GENERATOR

if %WITH_NINJA% EQU 0 (

    if "%MSVC_VERSION%"=="14" (

        set CMAKE_GENERATOR=Visual Studio 14 2015 Win64

    )

    if "%MSVC_VERSION%"=="12" (

        set CMAKE_GENERATOR=Visual Studio 12 2013 Win64

    )

    if "!CMAKE_GENERATOR!"=="" (

        echo ERROR: Unsupported MSVC version

        exit /B 1

    )

) else (

    set CMAKE_GENERATOR=Ninja

)

echo INFO: ============================================================

echo INFO: Summary:

echo INFO: ============================================================

echo INFO: MSVC_VERSION               = !MSVC_VERSION!

echo INFO: WITH_NINJA                 = !WITH_NINJA!

echo INFO: CMAKE_GENERATOR            = "!CMAKE_GENERATOR!"

echo INFO: CPU_ONLY                   = !CPU_ONLY!

echo INFO: CUDA_ARCH_NAME             = !CUDA_ARCH_NAME!

echo INFO: CMAKE_CONFIG               = !CMAKE_CONFIG!

echo INFO: USE_NCCL                   = !USE_NCCL!

echo INFO: CMAKE_BUILD_SHARED_LIBS    = !CMAKE_BUILD_SHARED_LIBS!

echo INFO: PYTHON_VERSION             = !PYTHON_VERSION!

echo INFO: BUILD_PYTHON               = !BUILD_PYTHON!

echo INFO: BUILD_PYTHON_LAYER         = !BUILD_PYTHON_LAYER!

echo INFO: BUILD_MATLAB               = !BUILD_MATLAB!

echo INFO: PYTHON_EXE                 = "!PYTHON_EXE!"

echo INFO: RUN_TESTS                  = !RUN_TESTS!

echo INFO: RUN_LINT                   = !RUN_LINT!

echo INFO: RUN_INSTALL                = !RUN_INSTALL!

echo INFO: ============================================================

:: Build and exectute the tests

:: Do not run the tests with shared library

if !RUN_TESTS! EQU 1 (

    if %CMAKE_BUILD_SHARED_LIBS% EQU 1 (

        echo WARNING: Disabling tests with shared library build

        set RUN_TESTS=0

    )

)

if NOT EXIST build mkdir build

pushd build

:: Setup the environement for VS x64

set batch_file=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat

call "%batch_file%" amd64

:: Configure using cmake and using the caffe-builder dependencies

:: Add -DCUDNN_ROOT=C:/Projects/caffe/cudnn-8.0-windows10-x64-v5.1/cuda ^

:: below to use cuDNN

cmake -G"!CMAKE_GENERATOR!" ^

      -DBLAS=Open ^

      -DCMAKE_BUILD_TYPE:STRING=%CMAKE_CONFIG% ^

      -DBUILD_SHARED_LIBS:BOOL=%CMAKE_BUILD_SHARED_LIBS% ^

      -DBUILD_python:BOOL=%BUILD_PYTHON% ^

      -DBUILD_python_layer:BOOL=%BUILD_PYTHON_LAYER% ^

      -DBUILD_matlab:BOOL=%BUILD_MATLAB% ^

      -DCPU_ONLY:BOOL=%CPU_ONLY% ^

      -DCOPY_PREREQUISITES:BOOL=1 ^

      -DINSTALL_PREREQUISITES:BOOL=1 ^

      -DUSE_NCCL:BOOL=!USE_NCCL! ^

      -DCUDA_ARCH_NAME:STRING=%CUDA_ARCH_NAME% ^
 -DCUDNN_ROOT=C:\cuda ^

      "%~dp0\.."

if ERRORLEVEL 1 (

  echo ERROR: Configure failed

  exit /b 1

)

:: Lint

if %RUN_LINT% EQU 1 (

    cmake --build . --target lint  --config %CMAKE_CONFIG%

)

if ERRORLEVEL 1 (

  echo ERROR: Lint failed

  exit /b 1

)

:: Build the library and tools

cmake --build . --config %CMAKE_CONFIG%

if ERRORLEVEL 1 (

  echo ERROR: Build failed

  exit /b 1

)

:: Build and exectute the tests

if !RUN_TESTS! EQU 1 (

    cmake --build . --target runtest --config %CMAKE_CONFIG%

    if ERRORLEVEL 1 (

        echo ERROR: Tests failed

        exit /b 1

    )

    if %BUILD_PYTHON% EQU 1 (

        if %BUILD_PYTHON_LAYER% EQU 1 (

            :: Run python tests only in Release build since

            :: the _caffe module is _caffe-d is debug

            if "%CMAKE_CONFIG%"=="Release" (

                :: Run the python tests

                cmake --build . --target pytest

                if ERRORLEVEL 1 (

                    echo ERROR: Python tests failed

                    exit /b 1

                )

            )

        )

    )

)

if %RUN_INSTALL% EQU 1 (

    cmake --build . --target install --config %CMAKE_CONFIG%

)

popd

@endlocal

pause

   最后,build_win.cmd修改完后,直接在cmd中运行该命令:

            ./sripts/build_win.cmd

运行完成后,会在build目录下生成想要的东西。

4.将python中caffe文件加载进anaconda2

     将原主目录下的build\build\install\python下的所有文件拷贝进D:\soft\python\Anoconda2-4.3.1\Lib\site-packages下即可。

      然后通过cmd安装protobuf:

     pip install protobuf

    再通过cmd进入python环境:

       python

  再导出caffe库:

   import  caffe

  没有报错即成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: