windows编译pycaffe的采坑点
按照正常步骤,修改commonSettings.props
然后再pycaffe项目上点右键,重新生成,会在bin目录下生成pycaffe文件夹和_caffe开头的四个文件
将这4个文件复制到pycaffe目录下的caffe文件夹下:
将这个caffe文件夹复制到python的site-packages文件夹下:
然后在打开python终端,输入import caffe,没报错就成功了
接下来,新建一个测试文件,输入以下代码
import caffe
import numpy as np
deploy='deploy.prototxt'#deploy文件
caffe_model='bvlc_reference_caffenet.caffemodel'
img='bvlc_reference_caffenet/peacock.jpg' #随机找的一张待测图片
labels_filename='synset_words.txt' #类别名称文件,将数字标签转换回类别名称
net = caffe.Net(deploy,caffe_model,caffe.TEST) #加载model和network
print"load caffemodel ..."
运行之后可能会报错:
1、无法解析的外部符号 "__declspec(dllimport) void __cdecl google::InstallFailureSignalHandler(void)"
修改_caffe.cpp文件,注释掉图中的部分
重新生成即可消除这个错误。
2、无法import init_log,log,solver_count...
打开bin目录下生成的pycaffe/caffe文件夹下的_init_.py和pycaffe.py文件
删掉下面红色标出的部分:
修改完以管理员权限保存,然后重新将caffe文件夹复制到python的site-packages目录下,覆盖原来的caffe文件夹,即可消除这个错误。
3、registry.count(type) == 1 (0 vs. 1) Unknown layer type: Input
出现输入层都是未知层的错误的情况,应该是层没有注册的原因,修改_caffe.cpp,添加注册层的语句即可。
修改完重新编译,重新复制,即可消除错误。
参考博客:https://www.cnblogs.com/neo-T/p/ssd-caffe-vs2015.html
尤其是没有层注册的这个问题,找了好久,终于在这篇博客找到解决办法。
下一篇: 视觉SLAM从理论到实践:设计前端(1)