程序员人生 网站导航

Windows-SSD配置与测试

栏目:综合技术时间:2016-12-06 10:46:57

博主近来实在太忙,望大家见谅尴尬。这篇博客也是在忙乱当中赶制出来,文中诸多1笔带过不很清晰,望大家给予理解和包容哭任何疑问欢迎加群讨论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


第1部份:CPU测试

1、编译windows-caffe

1、修改commonsetting

cpu_only=true----编译libcaffe(视正告为毛病-否

2、编译除matcaffe和pycaffe之外所有项(视正告为毛病-否

2、移植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文件重新编译

3、移层

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---成功

4、编译ssd_detection

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

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

 

第2部份:GPU测试

1、修改commonsetting

cpu_only=false,cudnn=true

2、编译libcaffe,

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

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

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

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

3、编译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和1个trust.sort(在哪自己找1下就行啦)

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

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

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

5、运行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中文件目录自己添加便可,这里不再累坠

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐