Caffe学习中的一些错误记录

ProtoBuffer

ProtoBuffer是由Google开发的一种可以实现内存与非易失存储介质(如硬盘文件)交换的协议接口。Caffe源码中大量使用ProtoBuffer作为权值和模型参数的载体。

在这里我使用的是2.5.0的版本。并且没有安装在系统默认目录/usr/或/usr/local/下,而是安装在了/home/proto_buffer/local_install下。

接着我们修改了caffe根目录中的Makefile.config文件

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 

在其后添加如下字段

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ /home/proto_buffer/local_install/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /home/proto_buffer/local_install/li

当使用g++命令编译get_param_from_proto.cpp文件,并调用caffe目录中的caffe.pb.cc以及ProtoBuffer时:

$ g++ -o test get_param_from_proto.cpp
/[caffe根目录]/build/src/caffe/proto/caffe.pb.cc -I/[caffe根目录]/build/src/caffe/proto/ -I/[ProtoBuffer安装目录]/include –L/[ProtoBuffer安装目录]/lib –lprotobuf

可能会出现如下一系列错误:

error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
       if (meanfile_ != &::google::protobuf::internal::kEmptyString) {

 

解决方法如下:

1、使用

$ protoc --version

查看ProtoBuffer版本,发现是

并不是之前安装的2.5.0版本

需要将安装目录使用如下命令加入PATH中:

$ PATH=/home/proto_buffer/local_install/bin:$PATH

2、若仍然报错,可能是因为caffe在修改Makefile.config没有重新编译。使用命令重新编译后应该就能解决问题了。

$ make clean
$ make 

3、若在第一步后出现如下错误

protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory

参考https://www.cnblogs.com/Anker/p/3209876.html

 

opencv

opencv大致安装步骤如下(以opencv-3.0.0为例):

下载opencv-3.0.0.tar.gz

>> tar zxvf opencv-3.0.0.tar.gz
>> cd opencv-3.0.0
>> mkdir build
>> cd build

利用下面的cmake命令进行编译设置

>> cmake .. –DCMAKE_BUILD_TYPE=Release –DCMAKE_INSTALL_PREFIX=[自定义安装目录]
>> make
>> make install

这一步往往会卡在ICV: Downloading ippicv_linux_20141027.tgz这一步骤

 

解决方法如下:

不知道是因为cmake下载的问题还是Hash值的问题,我们可以下载 ippicv_linux_20141027.tgz文件,并对应目录

/home/proto_buffer/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b中的 ippicv_linux_20141027.tgz文件。

再次执行

>> cmake .. –DCMAKE_BUILD_TYPE=Release –DCMAKE_INSTALL_PREFIX=[自定义安装目录]
>> make
>> make install

问题解决!

 

依然是关于opencv的一个问题,具体提示如下:

 make: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1

 

解决方法如下:

打开Makefile.config

可以看到有关opencv的一行:

# Uncomment if you're using OpenCV 3
取消OPENCV_VERSION := 3这一行的标注

问题解决!

posted @ 2018-02-17 13:04  LoN丶ginus  阅读(192)  评论(1编辑  收藏  举报