github地址https://github.com/loswensiana/BWN-XNOR-caffe
XNOR是用于权值与输入二值化的解决方案,以损失一部分精度为代价,来达到提高计算速度和减小缓存的目的
你需要提前准备好cuda配置与caffe环境配置.
具体可查看我之前博客:
ubuntu14.04+cuda7.5安装 官方步骤版
ubuntu14.04+cuda7.5+caffe+cudnn7.5+anaconda+opencv 2.4.9系统整合(2016.12.3)
从github上下载压缩文件后解压到home路径下,会出现一个BWN-XNOR-caffe-master文件夹.
由于我们的cudnn是v5版本的,而该工程是v3版本的,需要我们把之前caffe中的cudnn文件替换BWN-XNOR-caffe-master中的cudnn文件
在终端输入:
cp caffe-master/include/caffe/layers/cudnn_* BWN-XNOR-caffe-master/include/caffe/layers/
cp caffe-master/src/caffe/layers/cudnn_* BWN-XNOR-caffe-master/src/caffe/layers/
cp caffe-master/include/caffe/util/cudnn.hpp BWN-XNOR-caffe-master/include/caffe/util/
更改BWN-XNOR-caffe-master/src/caffe/ex_layers/binary_conv_layer.cu文件中的两个函数
110行cudnnConvolutionBackwardFilter_v3改为cudnnConvolutionBackwardFilter
128行cudnnConvolutionBackwardData_v3改为cudnnConvolutionBackwardData
注:这都是cudnn_v5版本函数名
之后建立BWN-XNOR-caffe-master/build文件夹
cmake ..
make -j8
make pycaffe -j8
caffe编译完成