一、编译:
1、下载官方BVLC版本的caffe ,下载地址:https://github.com/BVLC/caffe/tree/windows,放在一个目录下解压;
2、安装Anaconda2.7,下载地址:https://repo.anaconda.com/archive/Anaconda2-2019.03-Windows-x86_64.exe,按照多数教程,安装过程中到下图这一步注意勾选下图选择的,在之后记得勾选添加环境变量的选项;
3、下载相应的caffe依赖包,地址https://github.com/willyd/caffe-builder/releases/ ,根据前面的下载这里选择如下:
4、Notepad打开1中解压文件夹caffe-windows\scripts路径下的build_win.cmd,按照下图进行修改,主要是本次编译CPU版caffe;
5、将3中下载的压缩包放置在C:\Users\Administrator\.caffe\dependencies\download路径下,打开cmd,切换到1中解压文件夹caffe-windows\scripts路径下,运行build_win.cmd,提示最终编译结果如下(未截图,采用网上的):
6、打开caffe-windows\scripts\build生成的Caffe.sln,在debug和release模式下分别对ALL_BUILD和INSTALL进行编译;这里提供VS2015+Win10+Anaconda2编译好的caffe相关文件:
https://download.youkuaiyun.com/download/z5122/11231621
以及C:\Users\Administrator\.caffe\dependencies路径下libraries_v140_x64_py27_1.1.0文件夹中后面配置需要的相关文件:
https://download.youkuaiyun.com/download/z5122/11231630
二、配置
以Release X64模式配置为例,如下:
所有需要的头文件、静态库文件在编译第6步的两个下载链接中下载到,路径根据下载位置进行调整
添加的库如下:
opencv_core310.lib
opencv_highgui310.lib
opencv_imgproc310.lib
opencv_imgcodecs310.lib
caffe.lib
caffeproto.lib
caffehdf5.lib
caffehdf5_hl.lib
gflags.lib
glog.lib
leveldb.lib
libprotobuf.lib
libopenblas.dll.a
lmdb.lib
boost_python-vc140-mt-1_61.lib
boost_thread-vc140-mt-1_61.lib
cublas.lib
cuda.lib
cudart.lib
curand.lib
cudnn.lib
三、加载预训练模型(以Alexnet为例),提取输入图像的对应层上的特征
代码参考:https://blog.youkuaiyun.com/seu_nuaa_zc/article/details/80549540
几个需要的文件:
包括:(1)bvlc_alexnet.caffemodel(预训练好的alexnet网络参数文件)http://dl.caffe.berkeleyvision.org/bvlc_alexnet.caffemodel
(2)deploy.prototxt(alexnet网络模型)
(3)imagenet_mean.binaryproto(均值文件,可自己生成,将在另一篇博客中介绍过程,这里提供imagenet数据集的均值文件)(2和3下载链接:对2的文件输入层进行了微调,均值文件包括两个,一个自己数据集生成的,一个imagenet数据集生成的:https://github.com/nxyzgf/alexnet_deploy.prototxt
测试的图像为:
运行程序,可以看出alexnet模型的整体结构如下:
运行过程中以打印出Conv5的卷积核为例如下:
经过Conv5后原始图像的响应图像如下:
输出全连接层8的结果,可以看出正好是1000*1维: