之前已经配置过一次caffe环境了:

Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境

但其中也提到,编译时,用到了cuda6.5,但是实际训练时,使用GPU训练,又会出现问题。所以强迫症使然,我决定另外配置一个cpu_only的版本,编译时,不使用cuda。

于是网上查了查,很多小伙伴都是使用happynear配置的caffe-windows版本,并参照其博客中的步骤进行编译使用的:

如何快糙猛地在Windows下编译CAFFE并使用其matlab和python接口

按照博客中的方法,自己要做的事情就变得很少很少了,主要有:

1、双击./src/caffe/proto/extract_proto.bat批处理文件来生成caffe.pb.hcaffe.pb.cc两个c++文件,和caffe_pb2.py这个Python使用的文件。

2、打开./build_cpu_only/MainBuilder.sln ,点击编译按钮;

原来以为只需静静等待,即可生成caffe.exe。但没想到,还是出现了问题,费了好大的劲,最终才得以解决。

问题一:编译时,出现如下错误:


错误 621 error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl google::ShowUsageWithFlagsRestrict(char const *,char const *)" (__imp_?ShowUsageWithFlagsRestrict@google@@YAXPEBD0@Z) F:\caffe-windows-master\build_cpu_only\MSVC\caffe.obj caffe

错误 622 error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl google::SetUsageMessage(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?SetUsageMessage@google@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) F:\caffe-windows-master\build_cpu_only\MSVC\caffe.obj caffe

错误 623 error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl google::FlagRegisterer::FlagRegisterer(char const *,char const *,char const *,char const *,void *,void *)" (__imp_??0FlagRegisterer@google@@QEAA@PEBD000PEAX1@Z) F:\caffe-windows-master\build_cpu_only\MSVC\caffe.obj caffe

错误 624 error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl google::SetVersionString(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?SetVersionString@google@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) F:\caffe-windows-master\build_cpu_only\MSVC\caffe.obj caffe

错误 625 error LNK2001: 无法解析的外部符号 "__declspec(dllimport) unsigned int __cdecl google::ParseCommandLineFlags(int *,char * * *,bool)" (__imp_?ParseCommandLineFlags@google@@YAIPEAHPEAPEAPEAD_N@Z) F:\caffe-windows-master\build_cpu_only\MSVC\common.obj caffe

错误 626 error LNK1120: 5 个无法解析的外部命令 F:\caffe-windows-master\bin\caffe.exe caffe


出现的问题是:程序运行时调用了ShowUsageWithFlagsRestrict、SetUsageMessage等这些个函数,但编译器找不到这些函数定义的位置,即出现“无法解析的外部符号”,这就是缺少依赖库时常出现的error。究其原因是happynear在caffe的配置环境中,没有添加libgflags.lib库。这是一个Google开源的一个库,具体用途我也不知道。

所以只需:打开各工程属性页,在 链接器-》输入-》附加依赖项 中添加 “libgflags.lib” 即可

问题二:运行run_mnist.bat,尝试使用caffe训练mnist手写字体库模型时出现如下错误:


** On entry to SGEMM parameter number 3 had an illegal value
** On entry to SGEMM parameter number 3 had an illegal value
** On entry to SGEMM parameter number 3 had an illegal value
** On entry to SGEMM parameter number 3 had an illegal value


这不是一个常见的错误,所以上网查了很久也没找到解决的方法。后来只有自己乱试了,结果在配置环境变量时发现,我上一次使用

Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境

配置时,发现当时第三方库下的bin路径还存在(我的是F:\caffe\3rdparty\bin;)而这一次的配置,环境变量是放在F:\caffe\3rdparty\bin;之后的,会不会是由于F:\caffe\3rdparty\bin;的存在,使得该版本生成的caffe.exe在训练时出错,因为caffe.exe在运行时,是会从环境变量中找寻找需要的动态库进行链接才能顺利执行的。或许是因为F:\caffe\3rdparty\bin;的存在,使得该版本下的caffe.exe在运行时,先从F:\caffe\3rdparty\bin;中取动态库进行链接,而可能两个版本在配置时所用动态库有差异,不能共用,所以才导致该版本的caffe.exe在训练时,出现如上错误?

带着疑问,我将F:\caffe\3rdparty\bin;从环境变量中删去,并且从任务管理器中结束了explorer.exe,再重新新建任务explorer.exe(即使环境变量生效!!!)

然后再运行run_mnist.bat,结果真的可以正常开始训练了。真是被自己的智慧所折服。- -|||

以上。

caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题的更多相关文章

  1. Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境

    折腾了几天,终于在windows系统上成功配置了Caffe环境,期间遇到了很多问题,每个问题的解决也都花了不少时间,查过挺多资料,感觉挺有意义,这里写篇博客记录一下. 原来我使用的CUDA版本是7.5 ...

  2. caffe 在 windows 下的配置(scripts\build_win.cmd)

    官网配置文档见:GitHub - BVLC/caffe at windows 1. windows 设置 requirements: visual studio 2013/2015 CMake > ...

  3. windows 10安装和配置caffe教程 | Install and Configure Caffe on windows 10

    本文首发于个人博客https://kezunlin.me/post/1739694c/,欢迎阅读! Install and Configure Caffe on windows 10 Part 1: ...

  4. 【转】Caffe初试(十)命令行解析

    caffe的运行提供三种接口:C++接口(命令行).Python接口和matlab接口.本文先对命令行进行解析,后续会依次介绍其它两种接口. caffe的C++主程序(caffe.cpp)放在根目录下 ...

  5. Caffe + Ubuntu 14.04 64bit + CUDA6.5 + 无GPU 配置

    官网: http://caffe.berkeleyvision.org/installation.html#compilation 参考网站: http://www.cnblogs.com/dupul ...

  6. Caffe+CUDA8.0+CuDNNv5.1+OpenCV3.1+Ubuntu14.04 配置参考文献 以及 常见编译问题总结

    Caffe + CUDA8.0 + CuDNNv5.1 + OpenCV3.1 + Ubuntu14.04  配置参考文献 ---- Wang Xiao  Anhui University  CVPR ...

  7. caffe平台快速搭建:caffe+window7+vs2013

    caffe平台快速搭建:caffe+window7+vs2013 1.caffe-master下载 采用微软提供Windows工具包(caffe-master),下载地址:https://github ...

  8. 【Caffe】源码解析----caffe.proto (转载)

    分析caffe源码,看首先看caffe.proto,是明智的选择.好吧,我不是创造者,只是搬运工. 原文地址:http://blog.csdn.net/qq_16055159/article/deta ...

  9. Caffe实战三(依赖包解析及环境配置)

    前面的文章使用的软件环境是开始时通过apt-get命令所安装的,本文将通过编译源码的方式重新配置一个可迁移的软件环境.(参考:<深度学习 21天实战Caffe> 第五天 Caffe依赖包解 ...

随机推荐

  1. css 补漏

    1.box-sizing: width(宽) + padding(内边距) + border(边框) = 元素实际宽度    height(高) + padding(内边距) + border(边框) ...

  2. gdb调试常用实用命令和core dump文件的生成

      1.生成core dump文件的方法: $  ulimit -c //查看是否为0 如果为0 $   ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxx ...

  3. Angular 2 - 5 分钟快速入门

    原文地址: https://angular.io/docs/ts/latest/quickstart.html 让我们从 0 开始创建一个简单的 Angular 2 应用. 下载任何版本的 angul ...

  4. MacTalk阅读有感

    MacTalk by 池建强 高手的思维境界 -贴地气 -有思想 技术普及 文字是表达人思想的载体,池老师将自己的经历,经验分享给大家,很值得大家学习,虽然我只是个初出茅庐的小菜,现在有指路明灯一样. ...

  5. Sublime Text 中文乱码

    STEP1: 安装package control tool 先设置好fq,系统代理设置为fq代理 按Crtl + ~调出控制台,输入如下代码: import urllib2,os; pf='Packa ...

  6. 学习Javascript

    分别归类为: javascript变量 javascript运算符 javascript数组 javascript流程语句 javascript字符串函数 javascript函数基础 javascr ...

  7. web前端各大技术都能实现什么功能

    web前端各大技术都能实现什么功能 以下是孜然为你总结的web前端开发你必须要一项一项掌握的技术:Html.css.ajax.jquery.extjs.JavaScript,今天为你详细解读他们各自都 ...

  8. 11月15日下午 ajax返回数据类型为XML数据的处理

    ajax返回数据类型为XML数据的处理 /*XML:可扩展标记语言 HTML:超文本标记语言 标签:<标签名></标签名> 特点: 1.必须要有一个根 2.标签名自定义 3.对 ...

  9. group by 查询分组后 组的条数

    比如select gid from table group by gid 查询时使用下面的方法查询条数 select count(distinct gid) from table 使用select c ...

  10. APP的消息推送(极光推送)

    APP的消息推送,使用的第三方平台是极光推送 简单案例(以Thinkphp为例): 1.下载下载PHPSDK 2.把PHPSDK目录下的jpush-api-php-client-3.5.1\src\J ...