【深度学习】笔记15 windows下SSD网络在caffe中的配置【笔记1】

**************************************************************************************************************************
文件说明:
         windows下SSD网络在caffe中的配置
开发环境:
         win10+cuda7.5+cuDNNv5.0+opencv2.4+vs2013
时间地点:
         陕西师范大学*问津楼 2017年8月3日
作    者:
         九 月
**************************************************************************************************************************
【1】安装VS2013,下载一个VS2013的镜像,直接下一步下一步就可以了  
**************************************************************************************************************************
【2】安装CUDA7.5,去NVIDIA官网下载:  
       [1]官网地址1:http://www.geforce.cn/drivers  
       [2]百度云盘:链接: https://pan.baidu.com/s/1gfaNlEb 密码: 7ew9  
       [3]安装:直接下一步下一步,就可以。  
**************************************************************************************************************************
【3】下载cuDNN7.5_v5,可以在我的百度云盘下载,我已经做了分享:  
       链接如下所示:链接: https://pan.baidu.com/s/1gfIgBab 密码: yqxf  
**************************************************************************************************************************
【4】下载windows-caffe-SSD的源码:  
       [1]caffe微软的官方源代码:链接:http://pan.baidu.com/s/1c12xAgw 密码:vurt 
       [2]自己配置的源代码:链接:链接:http://pan.baidu.com/s/1kVaFl0z 密码:fib4  (推荐使用这个)
       [3]接下来的具体配置过程,请参考我前面的博客,链接为:http://blog.csdn.net/maweifei/article/details/76559924
**************************************************************************************************************************
【5】经过上面的配置,现在就可以试着编译windows-caffe-SSD的源代码了,后面出现错误的时候,具体看错误的信息,进行错误的处理
**************************************************************************************************************************
【6】编译项目:
       【报错】“未能生成object文件(警告被视为错误)”

       【解决方法】选择【项目】----【属性】---C/C++常规,将【警告视为错误】的选项改为【否】,具体如下图所示:


**************************************************************************************************************************
【7】复制.\ssd_new下所有文件(除build,data,example以及models之外)至.\windows-caffe,替换原来文件夹中对应的文件,ssd_new
        文件的链接如下所示:链接:http://pan.baidu.com/s/1jH9CTiI 密码:ll58
**************************************************************************************************************************
【8】编译文件:
       【报错】error C3861: “mkdir”:  找不到标识符。解决办法:在db_lmdb.cpp文件的
       【解决方法】将文件db_lmdb.cpp中的CHECK_EQ(mkdir(source.c_str(), 0744), 0) << "mkdir " << source << " failed";这句代
                   码修改为以下代码,添加了条件编译语句:
        #ifdef MSC_VER
               CHECK_EQ(mkdir(source.c_str(), 0744), 0) << "mkdir " << source << " failed";
        #endif
**************************************************************************************************************************
【9】编译文件:
       【报错】error C2360: “occurrences_32”的初始化操作由“case”标签跳过
       【解决方法】在hdf5.cpp文件中将所有出错的case语句下的内容都括上大括号{ },比如,将语句
           case H5T_FLOAT:
              LOG_FIRST_N(INFO, 1) << "Datatype class: H5T_FLOAT";
           break;
        改为:
           case H5T_FLOAT:
           {
               LOG_FIRST_N(INFO, 1) << "Datatype class: H5T_FLOAT";
               break;
           }

        最终修改的效果如下图所示:


**************************************************************************************************************************
【10】编译文件:
       【报错】报错error C2065: “SIGHUP”: 未声明的标识符
       【解决方法】在common.cpp文件最上边一行添加语句#include "process.h"
**************************************************************************************************************************
【11】编译文件:
       【报错】报错GLOG_NO_ABBREVIATED_SEVERITIES

       【解决方法】C/C++   -->  预处理器   -->   预处理器定义   -->  加上GLOG_NO_ABBREVIATED_SEVERITIES,具体如下图所示:


**************************************************************************************************************************
【12】选择解决方案下的libcaffe项目,进入include/layers文件夹中,删除路径.\caffe-master\include\caffe\layers下的
      roi_pooling_layer.hpp文件。进入src/layers文件夹中,删除路径.\caffe-master\src\caffe\layers下的roi_pooling_layers.cpp
**************************************************************************************************************************
【13】编译文件:
       【报错】报了都是关于signal_handler.cpp文件相关的错误
       【解决方法】在下面的链接中下载此文件,将此文件替换掉即可,具体的链接如下所示:
                   链接:http://pan.baidu.com/s/1bpu8wkn 密码:khbp
**************************************************************************************************************************
【13】编译文件:
       【报错】找不到标识符"snprintf"
       【解决方法】在bbox_util文件中,在标识符snprintf前面加上下划线_,修改为_snprintf。
**************************************************************************************************************************
【14】编译文件:
       【报错】error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl google::InstallFailureSignalHandler(void)"
       【解决方法】在common.cpp文件中,将出错的函数::google::InstallFailureSignalHandler()注释掉。
**************************************************************************************************************************
【15】编译工程:
       【报错】无法打开cudnn.h文件 
       【解决方法】配置cuDNN的【包含目录】【库目录】【链接器】【DLL路径】,配置方法类似OpenCv库的配置
**************************************************************************************************************************
【16】编译工程:
       【报错】error : declaration is incompatible with "const char *cudnnGetErrorString(cudnnStatus_t)"
       【解决方法】修改cudnn.hpp文件中
inline const char* cudnnGetErrorString(cudnnStatus_t status)
          为         
inline const char* CUDNNWINAPI cudnnGetErrorString(cudnnStatus_t status)
**************************************************************************************************************************
【17】编译工程:
       【报错】"::caffe::kBNLL_THRESHOLD" is undefined in device code",
       【解决方法】修改bnll_layer.cu中
                   Dtype expval = exp(min(in_data[index], Dtype(kBNLL_THRESHOLD)));
                   为
                   Dtype expval = exp(min(in_data[index], Dtype(50)));
**************************************************************************************************************************
【18】编译工程:
       【报错】error : too few arguments in function call. conv_layer.cu
       【解决方法】修改conv_layer.cu文件中  
this->forward_gpu_gemm(bottom_data + n * this->bottom_dim_, weight, top_data + n * this->top_dim_);
        为   
this->forward_gpu_gemm(bottom_data + n * this->bottom_dim_, weight, top_data + n * this->top_dim_, fals
**************************************************************************************************************************
【19】编译工程:
      编译项目,报与boost相关的regex正则表达式库出现问题,在项目中我们不需要正则表达式,所以将相关语句注释掉即可。
      进入项目libcaffe中,
           进入detection_output_layer.cu文件,将所有出现regex和rv的语句注释掉。
           进入detection_output_layer.cpp文件,将所有出现regex和rv的语句注释掉。
           进入detection_output_layer.hpp中,将语句#include <boost/regex.hpp>注释掉。
**************************************************************************************************************************
【20】编译项目,报与thrust相关的错误
      进入项目libcaffe中,注释掉
#include "thrust/functional.h"     
#include "thrust/sort.h"   
……
thrust::sort_by_key(&confidences[0], &confidences[0] + num_remain, &idx[0],
thrust::greater<Dtype>());
**************************************************************************************************************************
至此:SSD网络在windows下的配置已经完成,GPU版本的SSD网络已经可以运行
**************************************************************************************************************************
参考资料:
        【1】http://www.jianshu.com/p/9a84cc434e05
        【2】http://m.blog.csdn.net/gxb0505/article/details/73702451
        【3】http://blog.csdn.net/buaalei/article/details/55094879
注:
      如果需要编译好的SSD代码,请与作者联系。博主马上也要找工作,所以也比较忙,但是看见了会发!
**************************************************************************************************************************
**************************************************************************************************************************
**************************************************************************************************************************
**************************************************************************************************************************
**************************************************************************************************************************














  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值