Windows-SSD配置与测试

来源:互联网 发布:知乎 国企校园招聘 编辑:程序博客网 时间:2024/06/05 11:57

博主近来实在太忙,望大家见谅尴尬。这篇博客也是在慌乱之中赶制出来,文中诸多一笔带过不很清晰,望大家给予理解和包容哭任何疑问欢迎加群讨论499820806吐舌头


注意注意:记得看下文末备注部分额


所需文件vs2013,windows-caffe,ubuntu-ssd,libboost,cudnn,opencv(可选),ssd_detect.cpp,io.cpp

windows-caffe地址:链接:http://pan.baidu.com/s/1hrGRu1A 密码:j82r

ubuntu-ssd地址:链接:http://pan.baidu.com/s/1mhYuf7y 密码:3jp2

libboost地址:链接:http://pan.baidu.com/s/1pLbBMpP 密码:41tq

cudnn地址:链接:http://pan.baidu.com/s/1o8vWBhw 密码:kdj4

opencv地址:链接:http://pan.baidu.com/s/1eSkHBj0 密码:nhch

ssd_detect.cpp地址:链接:http://pan.baidu.com/s/1nvwECNv 密码:e3yn

io.cpp地址:链接:http://pan.baidu.com/s/1i4CL7QP 密码:g623


第一部分:CPU测试

一、编译windows-caffe

1、修改commonsetting

cpu_only=true----编译libcaffe(视警告为错误-否

2、编译除matcaffe和pycaffe以外所有项(视警告为错误-否

二、移植ssd至windows-caffe

1、复制ubuntu-ssd下所有文件(除build,data,example以及models之外)至windows-caffe,替换原来windows下对应文件

2、复制ssd_detection.cpp至classification,移除原来的classification.cpp(为了方便,无需重新配置)

3、编译libcaffe:5个windows-caffe文件(位于caffe/util)(signal_handler.cpp/hdf5.cpp/common.cpp/db_lmdb.cpp/io.cpp(我提供))替换对应文件,编译出错时,修改db_lmdb.cpp,复制if _defined(_MSC_VER)......#endif至db_lmdb.cpp文件重新编译

三、移层

1、在vs中添加复制后的layers(src/layer/),除roi_pooling以外全部加上(先不添加cu文件,只添加cpp,后面做gpu的时候再添加)

2、同时添加复制后的include(hpp头文件,位于/include/caffe/layers,除roi_pooling)

3、编译libcaffe---通过

4、编译caffe(视警告为错误-否),提示缺少libboost库,vc++库目录添加,编译出错

5、类似bbox加入libcaffe,libcaffe/src/util全部加入libcaffe(现有的ssd)

6、重编译libcaffe,出错时在snprintf前加上下划线"_"(两个地方)

7、重编译libcaffe(视警告为错误-否)---成功

8、再编译caffe---成功

四、编译ssd_detection

编译classification下的ssd_detection.cpp(加上libboost库目录)---成功

五、运行ssd_detection(将此项目设为启动项

 

第二部分:GPU测试

一、修改commonsetting

cpu_only=false,cudnn=true

二、编译libcaffe,

1、缺少cudnn.h,vc++包含目录中添加~/cudnn-7.0/cuda/include,再次编译出错declarationis incompation......

2、修改inline const char*(加入CUDNNWINAPI)cudnn...,再次编译,出错bnll_layer.cu(KBULL_THRESHOLD)

3、最后的KBNLL_THRESHOLD改成50,再次编译,出错errormsb3073:cmd错误

4、生成事件(预先生成事件-否,后期生成事件-否),再次编译----成功

三、编译classification以及添加cu文件(cpu时没有添加)

1、cudnn.h和cudnn.lib分别加入包含目录和库目录,编译-错误

2、添加文件layer里的cu,solver里的cu以及ctil里的cu

3、重启vs后删除这些层的cu,随后再次添加文件至相应工程下(de....cu,bb....cu,lstm....cu,norma....cu,permu....cu,recc....cu,smoo....cu,bbox.cpp),重编译libcaffe-出错

想问我为什么这么麻烦对吧,哼,不告诉你偷笑

4、bbox.cu注释2个trust以及一个trust.sort(在哪自己找一下就行啦)

5、detection.cu注释regex...以及detectioon.cpp注释rege...(在哪自己找一下就行啦)

6、detection.hpp注释boost/regex.hpp,再次编译libcaffe

四、编译除matcaffe和pycaffe外其他所有项

五、运行ssd_detection

若提示缺少cudnn.dll,找到文件加入/build/*64/debug即可

 

备注:

1、若不用cudnn,则在commonsetting中设置cudnn为false

2、cuda计算能力可以为3.0,3.5,5.0,5.2,6.1不等,在cudaarchitecture的compute以及sm...中自己修改就行

3、ssd_detection中文件目录自己添加即可,这里不再累赘

2 0
原创粉丝点击