caffe编译和基本使用(Windows + CPU)

news/2025/1/16 10:08:51/文章来源:https://www.cnblogs.com/xqspace/p/18339601

xqspace

0. 摘要

本文主要完成以下几点:

  • caffe默认支持是 vs2013/vs2015 + python2.7/python3.5,使用其他版本会比较麻烦,这里使用的是vs2015和python3.5;

  • 完成caffe在windows上的编译(cpu版);

  • 提供caffe的python接口;

  • caffe的基本使用方法(这里是推荐几篇讲的比较详细的入门博文);

  • 调试运行caffe的解决方案;

  • 解决上面几个过程中遇到的error:

    • The C compiler "xxxx/cl.exe" is not able to complile a simple test program.

    • 找不到python35.dll


1. 工具

请先完成以下工具安装:

  • vs2015

  • Ananconda3

  • CMake 3.4及以上

如果上述工具有未安装的,请先自行安装,这里也提供可参考的博客:

- vs2015:https://www.cnblogs.com/xqspace/p/18339484- Ananconda3:https://blog.csdn.net/fan18317517352/article/details/123035625- CMake:https://blog.csdn.net/u011231598/article/details/80338941

2. caffe在windows上的编译(cpu版)

2.1 代码下载

caffe代码地址:https://github.com/BVLC/caffe/tree/master

  • 方式一:下载压缩包(先选择windows分支,然后下载压缩包到本地解压)

  • 方式二:使用git下载:

    git clone https://github.com/BVLC/caffe.git
    cd caffe
    git checkout windows
    

2.2 配置python环境

2.2.1 打开命令提示符cmd,创建一个python版本为3.5的环境,环境名为caffe_env:conda create -n caffe_env python=3.5
img

2.2.2 进入这个环境:conda activate caffe_env
img

2.2.3 然后配置README.md中提到的依赖库:
img

  • 先依次执行:

    conda config --add channels conda-forge
    conda config --add channels willyd
    
  • 随后使用pip而不是conda来安装依赖库(conda可能会出现内存不足的报错),依次执行以下命令:

    pip install cmake
    pip install ninja
    pip install numpy
    pip install scipy
    pip install protobuf==3.1.0
    pip install six
    pip install scikit-image
    pip install pyyaml
    pip install pydotplus
    

    在一开始利用pip安装时,可能会因为pip的版本过低而报错,按照报错的指示先升级一下pip的版本即可,然后再安装依赖库。可以通过命令:conda list 来查看已安装的依赖库。

2.3 下载依赖库和配置

  1. 依赖库地址:https://github.com/willyd/caffe-builder/releases/tag/v1.1.0,
    这里用的是vs2015和python3.5,所以要下载 libraries_v140_x64_py35_1.1.0.tar.bz2

    img

  2. 将这个压缩包解压,放到C:\Users\xxxxxxxx\.caffe\dependencies文件夹下,这里是默认的地址
    img

  3. 既然已经下载了依赖库,就要将代码里的下载代码注释掉,需要注释掉 caffe项目目录\cmake\WindowsDownloadPrebuiltDependencies.cmake中的部分代码,如下图所示:
    img

2.4 编译

  1. 打开 caffe项目目录\scripts\build_win.cmd文件进行修改:
    WITH_NINJA=0, PYTHON_VERSION=3,CPU_ONLY=1,以及设置CONDA_ROOT=你的Anaconda3的路径\envs\caffe_env
    img

  2. 然后将cmake -G"!CMAKE_GENERATOR!"改为cmake -G"Visual Studio 14 2015 Win64",否则编译时就会出现报错:The C compiler "xxxx/cl.exe" is not able to complile a simple test program. 这里可能时因为cmake不是默认使用msvc进行编译,需要显示指定。(如果不修改的话,后面的问题一个接一个...)
    img

  3. 切换cmd的路径到caffe项目目录:执行scripts\build_win.cmd 等待完成
    img

  4. 编译完成后打开 caffe项目目录\build\Caffe.sln

    img

    然后点击 生成-->生成解决方案 等待编译完成会生成caffe相关库以及caffe.exe

    img

至此caffe的编译工作完成!撒花~

3. 提供caffe的python接口

  1. 上面编译完成后,将 caffe项目目录\python\caffe 文件夹拷贝到 anaconda的caffe_env的Lib\site-packages中:
    img

    img

  2. 重新打开cmd进入caffe_env,输入python,然后import caffe:

    img

    如果import caffe失败的话,可以重启一下电脑。

4. caffe的基本使用方法

caffe项目目录\example文件夹下已经提供了一些经典案例,这里是推荐几篇讲的比较详细的caffe基本使用的博文:

  • 使用caffe.exe文件直接进行训练和测试:https://www.cnblogs.com/xiaoboge/p/10688926.html (使用的是mnist的例子,对应路径在caffe项目目录\example文件夹下)
  • 用python写一个caffe网络:https://cloud.tencent.com/developer/article/1670397 (要在caffe_env环境中)

5. 调试运行caffe的解决方案

  1. 在Caffe.sln,右击 caffe.bin -->设为启动项
    img

  2. 右击 caffe.bin--> 属性 -->常规 -->命令参数 输入调试参数
    img

  3. 一开始运行时可能会报错,找不到python35.dll,将caffe_env文件夹的python35.dll复制到C:\Windows\System32中可解决。

    img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/777209.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生java学习路程-5

ok,到了一周一次的总结时刻,我大致会有下面几个方面的论述:1.这周学习了Java的那些东西2.这周遇到了什么苦难3.未来是否需要改进方法等几个方面阐述我的学习路程。 抽象类 abstract 接口interface,定义时加入注释解释接口含义String类 String是不可变字符串,所有的替换,截…

深圳航空顶象验证码逆向,和百度验证码训练思路

​ 声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi a15018601872) 试了一天的百度验证码训练,下载ps一…

快手-滑块

​ 声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使…

美团拼好饭小程序mtgsig1.2分析(补环境分析)

​ 声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使…

药监局瑞数后缀补环境教学

药监局,sign,瑞数6,python,sign​ 声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! (联系看首页) 前言 之前用框架搞的瑞数长度只能说十…

前程无忧阿里227滑块

sign,前程无忧,node,java,python,go,阿里227滑块​ 声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi a…

拼多多滑块逆向

​ 声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi a15018601872) 挺有意思的拼多多滑块,搞了一会。说…

安居客滑块逆向

​ 声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi a15018601872) 手势验证码太难训练了,尝试了了很多…

得物六宫格验证码分析

得物,验证码,六宫格,java,python,go​ 声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi a150186018…

美团滑块登录分析和京东手势问题

美团,滑块,python,逆向​ 声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言 好累啊搞这美团一直在补环境。昨天…

idea中maven的父工程(root)和子工程不在同一层

父工程跟子工程分开显示 要修改成 方法: 选中Group Modules即可