Caffe搭建:常見問題解決辦法和ubuntu使用中遇到問題(持續更新)


嚴正聲明:

在linux下面使用命令行操作時,一定要懂得命令行的意思,然后再執行,要不然在不知道接下來會發生什么的情況下輸入一通命令,linux很有可能崩掉。

因為在linux下面,使用sudo以及root權限時,是可以對任意一個文件進行操作處理的,即使是正在使用的系統文件。

caffe中出現下面這些問題說明在安裝過程中有一些步驟沒有按照官網說明來,如果按照官網說明一步步安裝,一般會一次性通過。

Caffe編譯問題及解決方案匯總:

 在編譯caffe代碼時,之前的各種錯誤會顯現出來,這時候會出現各種各樣的問題:

問題1:

Error: 'make all' 'make test' .build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)' 
.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'

原因:caffe代碼中並沒有build文件夾,需要新建build文件夾之后再進行編譯:

cd caffe-master  #打開caffe所在文件夾
cp Makefile.config.example Makefile.config  #change setting in Makefile.config make all -j8  #在build文件夾下進行編譯
make test -j8
make runtest -j8  #使用CPU多核同時進行編譯

 

問題2:

CMake Error at cuda_compile_generated_lrn_layer.cu.o.cmake:206 (message)

在成功安裝cuda之后,由於路徑設置問題,或者路徑沖突會產生以下錯誤,解決方法:

1.在caffe文件夾下,通過下面該命令查看配置路徑:

sudo find / -name nvcc

2.通過下面命令查看是否cuda路徑沖突:

$PATH

如果顯示結果有兩個cuda環境變量,那么需要移除舊的路徑,更新PATH。

3.重新設置cuda環境變量

在/etc/profile中添加CUDA環境變量

PATH=/usr/local/cuda/bin:$PATH  
export PATH

然后注銷或重啟(因為注銷或重啟之后PATH會從 ~/.bash_profile文件中重新讀取)

 

問題3:pycaffe編譯過程中的問題

錯誤信息:touch python/caffe/proto/__init__.py
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
PROTOC (python) src/caffe/proto/caffe.proto
     python/caffe/_caffe.cpp:1:52: fatal error: Python.h: No such file or directory
#include <Python.h>  // NOLINT(build/include_alpha)
compilation terminated.
make: *** [python/caffe/_caffe.so] Error 1

因為我的python環境安裝的是spyder,而不是Anaconda,因此在makefile.config里面需要對路徑進行設置

# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
        # $(ANACONDA_HOME)/include/python2.7 \
        # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \

# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /usr/lib
# PYTHON_LIB := $(ANACONDA_HOME)/lib

Python.h  can running sudo find / -name 'Python.h' to find the path.

原帖地址

 

 

Linux一些常用命令記錄及解釋:

1.程序安裝

本地安裝 命令格式

  sudo dpkg -i softname.deb

其中dpkg為Debian Package的縮寫,dpkg常用命令有: -i 安裝 ;-r 卸載

dpkg命令是一個底層的安裝工具,apt是dpkg上層工具,用於從遠程獲取軟件包以及處理復雜的軟件包之間的關系。

apt常用的用法,apt-get后面接install 或remove對軟件進行安裝和卸載

  apt-get install <package>

 

2.設置系統root密碼

如果使用光盤安裝Ubuntu,按照安裝向導來進行帳號、分區等設置,而在這個安裝向導程序中沒有提示進行root密碼的設置,所以在 Ubuntu安裝好后需要手動設置root密碼。而如果是跳過安裝向導,點擊桌面上的Install圖標來進行安裝的話,在安裝過程中則會提示設置 root密碼。當然,如果需要修改root密碼也可以使用以下方法:打開終端,在終端中輸入命令:

sudo passwd root

接下來,按照提示一步步設置系統的root密碼。
輸入新的 UNIX 口令:
重新輸入新的 UNIX 口令:
passwd:已成功更新密碼
口令:

 

3.刪除文件夾和文件

在ubuntu里面有些文件夾通過右鍵方式無法刪除,這時候就需要使用命令來進行刪除。

刪除文件:

cd /usr/local/src      #打開文件所在位置
sudo rm ./file-name  #刪除文件

刪除文件夾:

cd /usr/local/src
sudo rm -r ./folder-name

 

3. 使用命令更改文件或文件夾名

sudo mv 舊文件名 新文件名

 

4. 使用顯示內核版本

uname a

 

5.Ubuntu批量復制刪除文件命令

批量復制文件命令

sudo cp -R /srcfolder/* /dstfolder

批量刪除文件命令:

sudo rm -rf /usr/share/stardict/dic/*

 

 

 

Ubuntu14.04使用中的一些問題及解決方法:

1.內核出現問題時解決方法

該問題困擾我很久,因為dpkg時程序安裝命令,該命令出問題導致新的軟件不能安裝,非常煩,查了很多資料,終於找到解決方法。

錯誤提示:  dpkg: 在處理時有錯誤發生:  linux-image-extra-3.19.0-28-generic 

linux-image-3.19.0-28-generic

解決方法:原帖地址(點我) 直接12樓

解決思路:將dpkg包中的信息先備份,在新的info信息復制到文件夾中更新內核

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old      //現將info文件夾更名
sudo mkdir /var/lib/dpkg/info                 //再新建一個新的info文件夾
sudo apt-get update                      //更新源
sudo apt-get -f install                    
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old    //將info中文件全部移到info_old文件夾下
sudo rm -rf /var/lib/dpkg/info                //把自己新建的info文件夾刪掉
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info     //把以前的info文件夾重新改回名字

通過上述命令可以解決內核移除失敗,更新問題。

 

2.Ubuntu14.04 無法識別硬盤exfat分區

為什么使用exfat格式呢?主要有以下兩種原因:

1、三大主流操作系統(Linux、Mac、Windows)都支持exfat格式。

2、exfat支持大於4G的文件。

在ubuntu下,由於版權的原因(據說),默認不支持exfat格式的u盤,不過可以很方便就能添加對exfat的支持:

1、對於ubuntu 14.04版本,直接運行下面的命令就可以了:

sudo apt-get install exfat-utils

安裝完之后重啟生效。(如果不重啟不行,則重啟)

 

3.設置PYTHON路徑方法

export PYTHONPATH=/home/username/caffe/python

查看路徑

echo $PYTHONPATH

 

4.Ubuntu不能對exfat以及ntfs等格式磁盤寫入文件

問題描述:the disk for the xx is not ready yet or not present  

acpi pcc probe failed

解決方式:

sudo su #獲取root權限
mount -o remount,rw /
dpkg --configure -a

 

5.caffe的python接口配置問題

在使用make pycaffe -j8命令完成caffe的python接口生成之后,還需要將python接口的路徑進行設置。

路徑設置一般有兩種方式(具體方法百度),為方便使用,這里設置為永久路徑。

使用命令

gedit ~/.bashrc

來對路徑進行設置,在文件最后一行加入路徑:

export PYTHONPATH=/home/startag/caffe/python/:/home/startag/caffe/python/caffe/

注銷或者重啟,路徑生效。

 

import caffe時錯誤提示

1. 錯誤提示:ImportError: No module named skimage.io

解決方法:

直接使用終端安裝:

pip install -U scikit-image

如果提示不識別   pip  命令,在Ubuntu14.04(64bit)下,使用下面命令安裝pip包管理軟件,也可以使用新立得軟件包搜索“scikit-image”安裝。

wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificate
sudo python get-pip.py

 

問題:

ImportError: No module named google.protobuf.internal

提示錯誤可使用新立得軟件包搜索“python-protobuf”安裝。

然后使用import caffe測試接口是否調試成功。

 

問題:

from google.protobuf import symbol_database as _symbol_database
ImportError: cannot import name symbol_database

解決方法: 

sudo pip install --upgrade protobuf

 

 

 

6. caffe中的python接口和matlab接口配置及常見問題匯總: 

在配置好了caffe環境之后,我們需要使用到caffe中的接口。caffe的接口分為3種,cmd接口,matlab接口和python接口。

cmd接口在使用make all -j8過程中已經生成,位置在tools里面。而matlab接口特別是python接口需要配置,期間還會遇到各種各樣的問題。

在對caffe的matlab和python接口進行編譯時可能會遇到g++版本過高問題,解決方法:Caffe使用:安裝gcc4.7和g++4.7。

在make pycaffe之后,需要使用make dist來將生成的python文件進行整理並設置caffe路徑。

在~/.bashrc文件中加入路徑:( 問題:ImportError: libcaffe.so: cannot open shared object file: No such file or directory解決方法)

#多個路徑使用:分割開
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:/usr/local/cuda/lib64:/home/startag/caffe/distribute/lib export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 export PYTHONPATH=/home/startag/caffe/distribute/python:$PYTHONPATH

 

python接口配置按照caffe官網interface中步驟進行,在~/.bashrc文件中寫入PYTHONPATH路徑,具體見官網。

遇見的問題解決方法:方法1 

**建議:在使用caffe時候,確定一個版本,然后把路徑寫入~/.bashrc 文件中。當然,也可以使用多個版本,不過需要把每一個版本的路徑都要加入到~/.bashrc文件中,比較麻煩,如果自己需要使用caffe,使用軟連接方法建立與caffe的軟連接。

方法:

ln -s caffe-root 目標文件夾

 構建fast-rcnn時提示:OpenCV - cannot find module cv2

解決方法

 

&. 使用draw_net.py繪制網絡結構方法:

使用draw_net.py繪制網絡結構時提示錯誤信息:

permission denied: 

解決方法:讓該文件具有系統權限

chmod u+x ./python/draw_net.py

 

 

出現下面錯誤時說明系統已經嚴重損壞,不保證可以完全修復

1.誤將cuda卸載之后,cuda-driver包損壞時的解決方案:

使用 aptitude進行安裝(這個經測試不好用,這樣安裝可能是非官方驅動)

  1. Install aptitude

    sudo apt-get install aptitude
  2. Install main package

    sudo aptitude install cuda

 

2. caffe中安裝build-essential提示包損壞解決方法

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential -f

 

當因安裝版本問題出現錯誤時,如本來應該在Ubuntu14.04上安裝cuda7.0,但是錯誤的在Ubuntu15.04上安裝(應該安裝對應的7.5),提示一下錯誤時:

dpkg: error processing archive  (--install):cuda-repo-ubuntu1504_7.5-18_amd64.deb
trying to overwrite '/etc/apt/sources.list.d/cuda.list',
which is also in package cuda-repo-ubuntu1404_7.0-18_amd64.deb

 

解決方案:

sudo dpkg -i --force-overwrite cuda-repo-ubuntu1504_7.5-18_amd64.deb
 

遇到該問題時:
ImportError: /usr/lib/liblapack.so.3: undefined symbol: ATL_chemv

解決方法:
http://stackoverflow.com/questions/8917977/installing-lapack-for-numpy


在編譯caffe時出現錯誤:
caffe : /wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or dir
解決方案:

make clean
export CPLUS_INCLUDE_PATH=/你的anconda路徑/include/python2.7
make all -j8

原因:

python路徑都改為了anaconda的路徑,但是CPLUS的path沒有設置,系統中我也沒把aneconda設置成默認的python導致的。

 

 

 

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM