caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题
之前已经配置过一次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.h和caffe.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版本的配置及遇到的问题的更多相关文章
- Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境
折腾了几天,终于在windows系统上成功配置了Caffe环境,期间遇到了很多问题,每个问题的解决也都花了不少时间,查过挺多资料,感觉挺有意义,这里写篇博客记录一下. 原来我使用的CUDA版本是7.5 ...
- caffe 在 windows 下的配置(scripts\build_win.cmd)
官网配置文档见:GitHub - BVLC/caffe at windows 1. windows 设置 requirements: visual studio 2013/2015 CMake > ...
- windows 10安装和配置caffe教程 | Install and Configure Caffe on windows 10
本文首发于个人博客https://kezunlin.me/post/1739694c/,欢迎阅读! Install and Configure Caffe on windows 10 Part 1: ...
- 【转】Caffe初试(十)命令行解析
caffe的运行提供三种接口:C++接口(命令行).Python接口和matlab接口.本文先对命令行进行解析,后续会依次介绍其它两种接口. caffe的C++主程序(caffe.cpp)放在根目录下 ...
- Caffe + Ubuntu 14.04 64bit + CUDA6.5 + 无GPU 配置
官网: http://caffe.berkeleyvision.org/installation.html#compilation 参考网站: http://www.cnblogs.com/dupul ...
- Caffe+CUDA8.0+CuDNNv5.1+OpenCV3.1+Ubuntu14.04 配置参考文献 以及 常见编译问题总结
Caffe + CUDA8.0 + CuDNNv5.1 + OpenCV3.1 + Ubuntu14.04 配置参考文献 ---- Wang Xiao Anhui University CVPR ...
- caffe平台快速搭建:caffe+window7+vs2013
caffe平台快速搭建:caffe+window7+vs2013 1.caffe-master下载 采用微软提供Windows工具包(caffe-master),下载地址:https://github ...
- 【Caffe】源码解析----caffe.proto (转载)
分析caffe源码,看首先看caffe.proto,是明智的选择.好吧,我不是创造者,只是搬运工. 原文地址:http://blog.csdn.net/qq_16055159/article/deta ...
- Caffe实战三(依赖包解析及环境配置)
前面的文章使用的软件环境是开始时通过apt-get命令所安装的,本文将通过编译源码的方式重新配置一个可迁移的软件环境.(参考:<深度学习 21天实战Caffe> 第五天 Caffe依赖包解 ...
随机推荐
- 代码批量生成WORD的遇到的问题及解决
好久没搞工具了,最近因为处理大规模公文处理单文档,自己写了个批量处理WORD的程序:在调试过程中,主要遇到两个问题 第一个是WORD的模板 数据很多,但是WORD模板只需要一个,将数据替换WORD里标 ...
- 篇一:js中动态加载---append
之前是一行代码,不能动态加载,新的需求要动态加载,使用append $('#Order_information').append(' <div class="single_produc ...
- ionic+angularjs开发hybrid App(环境配置+创建测试项目)
本文使用的系统是win10 因为后期需要使用nodejs 所以先把node装好 https://nodejs.org/download/ 下载JDK并配置Java运行环境 http://www.ora ...
- Android开发常见问题小结
1.布局文件 自己写的布局文件无得使用 原因:导入了系统的R文件 修改:将android.R 这句注释 或者删除 2.Activity作为主窗口设置 Activity无法启动,或者要设置Activit ...
- 数据结构图文解析之:队列详解与C++模板实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- a版本冲刺第四天
队名:Aruba 队员: 黄辉昌 李陈辉 林炳锋 鄢继仁 张秀锋 章 鼎 学号 昨天完成的任务 今天做的任务 明天要做的任务 困难点 体会 408 完成学习Java从入门到精通基础篇 通读了构建 ...
- 狼人杀BETA阶段计划简介
狼人杀beta阶段任务与目标 简介 一.前言 狼人杀alpha阶段终于在组团刷夜中结束了,我们取得了一些成绩,同时也暴露了团队的一些问题.但不管怎样,有了在alpha版本中收获的经验,我们将在beta ...
- .net core
- eclipse中导入jar文件的源码
有时候想看看一个jar包的源码是怎么写的,想按Ctrl+鼠标左键点击来自动导航这时候就需要先把源码给导入到eclipse中,步骤如下:首先准备jar包和源文件包比如:
- java ssh 框架下 利用junit4 spring-test进行单元测试
ssh框架下 由于bean实列 都交给spring 管理,要做单元测试就比较苦难,junit4 引入注解方便很多: 1. 加入依赖包 使用Spring的测试框架需要加入以下依赖包: JUnit 4 ...