1. 程式人生 > >Caffe搭建:常見問題解決辦法和ubuntu使用中遇到問題(持續更新)

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

解決思路:將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導致的。

相關推薦

導數積分入門筆記持續更新

前言 這幾天,無論是做題還是聽課都聽到了很多積分之類的東西 但是我才高一,學校並沒有學到這裡 於是一直掛機,十分難受 於是把學校的積分內容學了一下 在這裡記錄一下,也算是一次複習鞏固吧 當然啦,我現在的理解非常淺顯,可能有很多不夠深入的地方,大家可以

Linux面試常被問到的命令持續更新

1、du,df區別: du:檢視磁碟空間使用情況,統計目錄或檔案所佔空間的大小。 df:檢視磁碟檔案使用情況,磁碟被佔用的多少空間,還剩多少空間 2、檢視一點時間段內被修改過的檔案: #查

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

嚴正宣告: 在linux下面使用命令列操作時,一定要懂得命令列的意思,然後再執行,要不然在不知道接下來會發生什麼的情況下輸入一通命令,linux很有可能崩掉。 因為在linux下面,使用sudo以及root許可權時,是可以對任意一個檔案進行操作處理的,即使是正在使用的系統檔案。 caffe中出現下

常見linux問題解決辦法ubuntu使用遇到問題

嚴正宣告:   在linux下面使用命令列操作時,一定要懂得命令列的意思,然後再執行,要不然在不知道接下來會發生什麼的情況下輸入一通命令,linux很有可能崩掉。   因為在linux下面,使用sudo以及root許可權時,是可以對任意一個檔案進行操作處理的,即使是正在使用

vi編輯器方向鍵backspace鍵顯示不正常的解決辦法ubuntu的root密碼

網上看了很多方法,最簡單粗暴的莫過於改vim的配置檔案。方法如下: 首先改配置檔案要先切換到root賬戶,而今天使用ubuntu時想起來自己並沒有建立root賬號,更不用說密碼了。 然後我們只需要輸入 sudo passwd root 然後按提示輸入賬戶密碼,設定ro

linux學習類目常見命令持續更新

基礎命令mkdir=make directorys=創建目錄例子: mkdir /data=在根/下創建data目錄ls=list=列表目錄文件例子: ls / =列根/目錄下的目錄和文件參數: -l(long)=長格式 -d(directorys)=查

阿裏雲手動搭建k8s搭建遇到的問題解決持續更新

服務 list work body can -s ssi add gdi ETCD搭建 systemd啟動etcd服務的時候出現錯誤:Failed at step CHDIR spawning /usr/bin/etcd: No such file or directo

OpenStack搭建企業私有雲 一認證服務持續更新...

mod_wsgi 描述 put 裸機 編輯 pymysql example backup start 雲計算介紹 雲計算是一種模型,能夠提供無論在何時何地都可以便捷獲取所需資源的模型,這些資源可以是網絡資源、存儲資源、服務器資源,甚至是服務器或者應用軟件資源等。 雲計算模

JavaFuture、CallableFutureTask原理解析學習筆記

Future表示一個任務的生命週期,並提供了方法來判斷是否已經完成或取消,以及獲取任務的結果和取消任務等。Future介面: public interface Future<V> { boolean cancel(boolean mayInterruptIfRunni

SAP雲解決方案企業本地部署On-Premise混合架構下的安全認證許可權管理

SAP提供了使用者認證、許可權管理和單點登入等安全相關的解決方案。但是隨著雲平臺的興起,企業已經部署的安全解決方案如何與雲平臺的安全解決方案整合呢?這是擺在我們面前的一個問題,而且是一個至關重要、需要認真思考的問題。 本文將探討SAP提供的本地部署和雲平臺的安全解決方案產品集:SAP Single Sign

SAP雲解決方案企業本地部署On-Premise混合架構下的安全認證權限管理

可以登錄 安全認證 風險 spa 用戶名 direct idt win 如何選擇 SAP提供了用戶認證、權限管理和單點登錄等安全相關的解決方案。但是隨著雲平臺的興起,企業已經部署的安全解決方案如何與雲平臺的安全解決方案集成呢?這是擺在我們面前的一個問題,而且是一個至關重要、

Citrix問題解決持續更新

問題1:         手動掛載“個人網盤”後,使用者在共享資料夾中沒有建立自己的資料夾進行使用者問價的隔離,所欲使用者的檔案都相互可見? 分析:       

java 編譯異常及其解決辦法持續更新

unable event stc .config configure rect spring conf version java 編譯異常及其解決辦法(持續更新) 1.解決辦法:將jar版本降低適配 低版本的jdk或tomcat 1 嚴重: ContainerBase

Ubuntu 18.04 常見問題持續更新

ubuntu18.04LTS可靠源 雙系統或三系統Win10引導失敗: 方案一:如果能進入ubuntu:嘗試執行grub自動更新 sudo update-grub 然後看輸出內容是否包含Win10的引導項,有的話嘗試重啟進入win10引導。

解決Ubuntu下中文輸入法問題持續更新

引言 ubuntu系統下一個常見的問題是中文輸入法的問題,在剛開始使用ubuntu系統的時間裡,我在中文輸入法上花費的功夫可謂不小,由於ubuntu16.10不穩定,因此也時長遇到很多小問題。因此將自己的解決方式整理在這裡,以便諸位和自己之後使用。 安

Windows7下安裝Caffe(GPU)試了很久的失敗版本可參考

這是個失敗的版本,既然記錄下來了,就保留下來,總體來說沒錯,只是可能CUDA版本不合適。 可以參考下。 一. 安裝CUDA 2. 正常安裝 出現這個問題。。不懂。。我還是繼續了 後來大概弄懂了: 首先,CUDA不是驅動,這裡的“This graphics d

JPA系列--JPA部署階段常見錯誤及解決方法持續更新

錯誤一:javax.persistence.PersistenceException: Unable to locate persistence units問題 1.問題詳述 1.1 persistence.xml配置檔案 <?xml versi

在ideamaven專案 jar包下載不完整解決辦法持續更新

從GitHub上checkout一個專案下來,匯入idea後發現載入依賴奇慢無比,所以臨時把網路調成翻牆的代理,結果會發現idea會停止之前的下載,那怎麼辦呢?專案還沒構建完成呢,折騰了很久,發現更改一下依賴的版本號,再右鍵pom檔案,reimport可以成功載入改依賴,但是

2019年一線大廠春招Spring面試題答案合集上篇

開發十年,就只剩下這套架構體系了! >>>   

設計模式7原則、常見設計模式示例程式碼持續更新

設計模式7條原則 開閉原則:對擴充套件開放,對修改關閉 依賴倒置原則:高層模組不依賴底層模組,二者都依賴其抽象。目的:降低類之間的