使用python 进行caffe 数据可视化的时候可能会遇到下面的错误:
No to_python (by-value) converter found for C++ type: boost::shared_ptr<caffe::Blob<float> >
No to_python (by-value) converter found for C++ type: boost::shared_ptr<caffe::Net<float> >
No to_python (by-value) converter found for C++ type: boost::shared_ptr<caffe::Layer<float> >
上面的错误是由于boost-1.60.0 引起的,如果是boost-1.59.0,就没有上面问题,但是很容易无意中升级安装包的时候把boost也升级了,就会造成上面的问题。
解决的办法是在caffe/python/caffe/中对 _caffe.cpp 进行相应的修改:(参考:https://github.com/BVLC/caffe/issues/3494)
boost::python::register_ptr_to_python<boost::shared_ptr<Blob<Dtype> > >();
boost::python::register_ptr_to_python<boost::shared_ptr<Net<Dtype> > >();
boost::python::register_ptr_to_python<boost::shared_ptr<Layer<Dtype> > >();
// End fix
然后回到caffe 目录, 重新编译pycaffe:
caffe$ make pycaffe -j16
其中-j16 是使用多核cpu 进行编译,可以快速完成,问题解决。
本文详细介绍了在使用Python进行Caffe数据可视化时遇到的boost升级错误,包括错误的具体表现和解决方案。通过在caffe/python/caffe目录下的_caffe.cpp文件进行相应修改,以及重新编译pycaffe,成功解决了错误问题。
1万+

被折叠的 条评论
为什么被折叠?



