caffe-win10安装caffe-cpu


陆陆续续折腾了好久,本来都放弃了,但是今天看了看新闻,心情有点低迷,写了会代码,又来看看caffe…以下记录win10安装caffe的过程


安装camke和vs2015

cmake>3.4,我的是3.16.0
vs2015 社区版


下载caffe-windows

按照官网 教程即可, 但是最后build_win.cmd暂时不要执行

C:\Projects> git clone https://github.com/BVLC/caffe.git
C:\Projects> cd caffe
C:\Projects\caffe> git checkout windows
:: Edit any of the options inside build_win.cmd to suit your needs
C:\Projects\caffe> scripts\build_win.cmd

修改build_win.cmd配置

) 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=14
    :: 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=1
    :: 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=3
    :: 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=0
)

其他地方没有注意过,暂时的主要配置从else开始底下一段代码

  • MSVC_VERSION=14 设置使用vs版本,vs2013=12, vs2015=14,我的理解是编译器,那是不是不下载vs,用mingw也行…
  • WITH_NINJA=0 不知道什么东西,不过我们用不上,所以=0
  • CPU_ONLY=1 垃圾电脑没有GPU,所以=1
  • CMAKE_CONFIG=Release debug&release 版本
  • PYTHON_VERSION=3 选择你的python版本,如果你需要编译python接口的话只支持2.7和3.5
  • BUILD_PYTHON=1 是否编译python接口
  • BUILD_PYTHON_LAYER=1 是否使用python layer,我的目的就是使用python写caffe的datalayer
  • PYTHON_EXE=python 如果python没有在你的系统路径的话,这里可以指定python路径,如果在他会默认优先从系统路径读取,我使用anaconda的环境,所以这里就不改了
  • 后面三个设置我才应该无关紧要吧…

python3.5

我习惯性用anaconda,当然其他也行只要你是python=2.7 or 3.5
新建一个 python=3.5 的环境(默认是3.7),激活环境
这个路径下提供了一些需要的依赖caffe/python/requirements.txt

Cython>=0.19.2
numpy>=1.7.1
scipy>=0.13.2
scikit-image>=0.9.3
matplotlib>=1.3.1
ipython>=3.0.0
h5py>=2.2.0
leveldb>=0.191
networkx>=1.8.1
nose>=1.3.0
pandas>=0.12.0
python-dateutil>=1.4,<2
protobuf>=2.5.0
python-gflags>=2.0
pyyaml>=3.10
Pillow>=2.3.0
six>=1.1.0

我开始没看到,编译完caffe再安装的这些包


下载caffe编译依赖的库

你以为这就完了,其实也可说就是完了,理论上配置好环境,修改完配置就可以了,我尝试运行了 scripts\build_win.cmd, 期待有个好的结果,但是事与愿违,所以在宁运行这行代码之前看完这一节再做决定

  1. 会下载一个约144M的文件,可能会下载失败,当然我尝试多次后成功了,后来发现可以从网上下载
    打开Ta它他她 选择合适的版本下载,当然这样也十分简单。我差点忘了说,把压缩包下载下来放在以下路径下,将解压缩包放在download同级目录下即可
-c:/user/user_name/.caffe/dependencies/
	--download/libraries_v140_x64_py35_1.1.0.tar.bz2
	--libraries_v140_x64_py35_1.1.0

2. protoc编译出错

 Checking Build System
  Running C++/Python protocol buffer compiler on E:/coding/caffe3/src/caffe/proto/caffe.proto
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: “cmd.exe”已 退出,
代码为 -1073741515。 [E:\coding\caffe3\build\src\caffe\caffeproto.vcxproj]
ERROR: Build failed
  • solution 1: 更改protobuf版本
    传说中的protoc出错了,这很ok,意料之外但又在情理之中,意外是我用的你官方的文件啊,这个版本又不是我控制的…,我尝试使用
    C:\Users\user_name\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\bin\protoc.exe
    想要查看他的版本,结果这个程序不能运行,难道官方给的程序竟然是错的?
    protobuf官网 直接下载release版
    我手动将其换成了protoc=2.6.1, 提示我 too old,
    再换成 protoc=3.1.0 (好像推荐python推荐下载的就是这个),结果提示我too new
    呵呵…以下过程我不在详述,概括就是我试遍了这其间所有版本,不是too old就是too new,果然 问题和我想得不一样吗?
  • solution 2:搜索caffe&MSB6006
    确实有人遇到同样的问题,但是没能解决我的问题

本来就此放弃,准备去远程服务器了,但是今天11-25 是爱因斯坦完成广义相对论的日子啊,注定有着不平凡的事情要发生,于是solution 3 出来了

扫描二维码关注公众号,回复: 8702612 查看本文章
  • solution 3:还是更改protobuf版本,对还是他…
    将下载的protoc-3.1.0-win32 解压,
    \protoc-3.1.0-win32\include\google 替换C:\Users\user_name\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\include\google
    protoc-3.1.0-win32\bin\protoc.exe替换C:\Users\user_name\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\bin\protoc.exe
    再次编译,诸君请看
(py35) E:\coding\caffe3>python
Python 3.5.5 | packaged by conda-forge | (default, Jul 24 2018, 01:52:17) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'caffe'
>>> import caffe
>>>

那么第一次导入为什么会失败呢?看下一节


将caffe/build/install/python/caffe移动到python/lib/site-package下

看标题就行了


测试

我还是希望有个测试代码可以用来测试,就放到后面使用python写datalayer吧


仅供参考,希望可以对大家有所帮助,祝大家都能幸福安康。


这个章节写的很罗嗦,请忽略他,在这个不是那么美好的日子里让人提不起劲来思考了…

发布了20 篇原创文章 · 获赞 0 · 访问量 373

猜你喜欢

转载自blog.csdn.net/yywxl/article/details/103178524
今日推荐