日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

    
        
    歡迎訪問 生活随笔!

    生活随笔

    當前位置: 首頁 > 编程语言 > python >内容正文

    python

    python安装caffe_Caffe安装笔记二:Caffe安装过程

    發布時間:2023/12/10 python 26 豆豆
    生活随笔 收集整理的這篇文章主要介紹了 python安装caffe_Caffe安装笔记二:Caffe安装过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    下面開始正題,caffe的安裝過程。因為出問題很多,所以實際上我是嘗試了python2和python3兩種python的接口。下面一并放出來。

    1.安裝build-essential

    sudo apt-get install

    build-essential

    這個是一些基本的庫,具體包括哪些,安裝前確認時會顯示,印象中有gcc等等。

    2. boost安裝

    caffe官網給出的是sudo apt-get install

    --no-install-recommends libboost-all-dev

    我不知道他特意加個--no-install-recommends干啥。另外,在installation主頁上標明了Boost>=1.55,但是如果用上面那條命令的話,默認裝上的是1.54。我現在還不能完全確定1.54是不是不行,但是為了保險起見,請使用

    sudo apt-get install libboost1.55-all-dev

    關于boost在makefile.config中的配置,這是個坑,下面詳細講講。

    2.1. python2/Anaconda2

    對于python2,只要執行完上面的安裝就可以了,makefile中的配置項無需做特別設置。

    2.2. python3/Anaconda3

    對于python3,boost安裝方面沒啥要留意的。需要特別注意的是makefile.config中,有一行

    # Uncomment to use Python 3 (default isPython

    2)

    PYTHON_LIBRARIES := boost_python-py34python3.5m

    這一項很有迷惑性,而且我也迷糊了很久,因為相關有一項是PYTHON_LIB,一開始我以為是相同的重復項。但是如果這句stay

    comment的話,make

    caffe和pycaffe都能成功通過,但是使用時卻會報錯:

    ImportError:

    /home/zero/Documents/caffe-master/python/caffe/_caffe.so:undefined

    symbol:

    _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE

    這個錯誤的意思是,boost版本不匹配。

    boost.python是啥東西呢?我理解的是boost.python是一個類似翻譯器的東西,所以如果你是python3的程序,卻用了python2的翻譯器,那語法、定義等等各方面必然會有沖突。我記得在某篇帖子中看到過,str、int等等的定義,在兩者中是不同的,所以有時會有報錯信息說找不到str啦int啦之類。當時沒有把沒一個錯誤都記下來。

    然后,如果我們去makefile中查找這個變量PYTHON_LIBRARIES,會發現有這么一句:

    PYTHON_LIBRARIES ?= boost_python python2.7

    這句的意思是說,如果不出意外,使用的是2版本的python和boost.python。但是這里有個問題,如果把makefile.config里面那句uncomment,原來默認的是"PYTHON_LIBRARIES

    :=boost_python3 python3.5m

    ",直接去掉的話會報錯說找不到

    -lboost_python3

    。這里我無法解釋原理,但是去/usr/lib/x86_64-linux-gnu/文件夾下面去找找,你會找到屬于python3的boost版本,可能是33,也可能是34。確定后,把makefile中的名稱換成相應名稱就可以了。3.5m

    的,我不了解為何要加m。修改后應該是:

    PYTHON_LIBRARIES := boost_python-py34python3.5m

    3. protobuf安裝

    protobuf官方產品默認是不支持python3的,所以通過默認的apt-get命令安裝的libprotobuf和protobuf

    complier僅適用于python2系列。

    而對于python3,以前支持python3的是民間組織搞的一個protobuf-py3,似乎是基于2.5的一個改貨。但是現在下不到了。試過pip3-protobuf,當時也不行。但是現在想來,我或許是之前裝過protobuf2.5沒卸載干凈的關系,如果有興趣的話,倒是可以試試pip3的方式。不過我這里還是建議手動安裝。

    有人在帖子中說protobuf-3.0.0

    -alpha有問題,我試過也確實不行,但是當時嘗試的環境依然是

    protobuf2

    沒卸干凈,所以到底alpha行不行,這里說不好,不過我確定beta是可以的,所以我們直接去下載protobuf-3.0.0-beta-2。注意分別下載cpp和python兩個版本的。

    https://github.com/google/protobuf/releases

    解壓后

    ./configure

    --prefix=/path/protobuf

    (這里指定的路徑可以是任意)

    make

    make check

    make install

    然后配置路徑,將protobuf下的lib和include加入makefile.config,同時,protobuf要加入bashrc里面。

    export PATH=$PATH:/path/protobuf/bin

    export

    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/protobuf/lib

    然后protoc–version查看版本是否正確。如果顯示的是protoc2.5.0

    ,那是有問題的。我曾經執行apt-get

    installlibprotobuf-dev,后來又purge卸載,但是執行protoc

    --version后還是能看到2.5.0的信息。如果是默認系統執行命令后會提示沒有protobuf,所以最好在安裝前先查一下。萬一有,怎么干凈的卸載,這個我真不清楚。

    關于系統權限問題

    這里講一下系統權限的問題,初入手ubuntu很容易迷糊,username賬戶、sudo、su這是三個不同的東西。bashrc配置過的路徑僅針對username賬戶有效,怎么樣能夠全局有效?理論是是修改/etc/profile,但是實際測試過不太好用。sudo的權限是不同于su賬戶的,所以下一步安裝python依賴我寧愿用su也不要用sudo。理論上修改sudo的配置文件/etc/sudoers就能夠達到不清除用戶賬戶環境配置的效果,但是實測無效。

    然后是pip,系統關聯anaconda3之后,默認pip是anaconda的pip,但是如果你執行sudo

    pip的話執行的是系統默認python2的pip,這些地方一定要注意。所以后面很多路徑配置后,執行sudo命令會提示找不到這個那個,原因是在做環境變量配置時僅針對當前用戶做了配置。

    另外有網優提到過,在caffemake的時候不要用sudo,不然后面會把部分文件加入權限限制,導致在make

    pycaffe的時候出問題。

    解壓protobuf的Python版本,進入目錄后

    cd Documents/pyprotobuf/protobuf-3.0.0

    -beta-2/python

    python setup.py build

    python setup.py test

    python setup.py install

    最后一步需要sudo或者su權限。我們還是把su也配置好anaconda,然后進入su賬戶執行安裝。

    這里一定要注意python的版本問題,如果裝了anaconda3,那么username賬戶下面python進去后是3.5.1

    ,這時一定要注意,測試下su賬戶下python進去后是什么,如果不修改bashrc,那么進去后是2.7.6。可以直接從username下的bashrc中把anaconda的路徑配置copy過去。

    安裝完python的protobuf后,進入python進行測試:

    Import google.protobuf

    from google.protobuf.internal

    importenum_type_wrapper

    3. hdf5

    python2/3下照常安裝就好,應該沒什么太大問題。

    sudo apt-get install libhdf5-serial-dev

    anaconda自己自帶hdf5,不需要安裝,但是需要注意配置。在makefileconfig中,要把anaconda的lib和include加入路徑配置當中,所以在make的時候,會依照該配置尋找anaconda中的動態鏈接庫文件libhdf5.so.10,但是系統找不到,怎么辦呢?這里有兩種解決辦法。

    一種是在bashrc中加入anaconda的lib路徑:

    LD_LIBRARY_PATH=home/zero/anaconda3/lib:$LD_LIBRARY_PATH

    exportLD_LIBRARY_PATH

    但是這樣會引發別的問題,make時,opencv方面會報錯,

    undefined reference

    toTIFFRGBAImageOK@LIBTIFF_4.0'

    按照晉倪的文章,這就需要手動安裝opencv,并在配置時設置:

    加上-DBUILD_TIFF=ON

    但是我嫌麻煩,所以開辟新路徑。

    第二種方式就是對hdf本身動手腳,一種辦法是在/usr/lib/x86_64-linux-gnu

    文件夾下面找,看有libhdf5.so.x幾,就把它鏈接為10,然后make時就找到啦。比如

    sudo ln -s libhdf5.so.7 libhdf5.so.10

    但是這不就是貍貓換太子?有網友說照著這個做,報錯說libhdf5版本不對。所以可能9換7可以,10換8就不行。然后有個哥們比較逗的是,直接把so文件復制到/usr/lib/x86_64-linux-gnu文件夾下面,我試了下:

    sudo cp

    libhdf5_hl.so.10/usr/lib/x86_64-linux-gnu/

    sudo cp libhdf5.so.10/usr/lib/x86_64-linux-gnu/

    然后,似乎是可以的。

    4. opencv

    python2的我直接就禁用opencv了,所以有興趣可以自己試試看。當時也是報錯

    undefined reference

    toTIFFRGBAImageOK@LIBTIFF_4.0'

    可能對于python2/3,真的要手動安裝。

    對于anaconda,直接照常安裝就行了。

    sudo apt-get install libopencv-dev

    5.其他

    sudo apt-get install

    libleveldb-devlibsnappy-dev

    sudo apt-get install libatlas-base-dev

    sudo apt-get install libgflags-devlibgoogle-glog-dev

    liblmdb-dev

    這些似乎都不會出太大問題。

    6.安裝python依賴庫

    anaconda用戶可以跳過此步,這一步僅針對原生python而言。

    首先安裝一些必備的編譯器:

    sudo apt-get install gcc-gfortran.x86_64

    sudo apt-get install gfortran

    然后安裝pip(針對python2):

    sudo apt-get install python-pip

    或者(針對python3):

    sudo apt-get install python3-pip

    使用的時候是pip或者pip3,分別針對兩個版本的python。

    然后執行caffe的python下面的requirements.txt中的模塊安裝。

    官網給出的命令:

    for req in $(catrequirements.txt); do pip install

    $req; done

    執行此命令需要su權限,你可以先進入su賬戶,如果不用su而用sudo的話則命令改為:

    for req in $(cat requirements.txt); do sudopip3 install

    $req; done

    不過網上還是看到有人說不要用他的文檔,自己一個一個裝比較好。確實在安裝過程中會有不能完全安裝而留意不到的情況,所以最好手動安裝,沒裝完一個看返回信息是否是安裝成功。例如:

    sudo pip3 install

    'python-gflags>=2.0'

    需要選擇版本的話記得加引號。

    7.安裝caffe及配置makefile文件

    先下載Caffe。github上下載好caffe庫:https://github.com/BVLC/caffe,復制到ubuntu下,解壓。然后按照官網說法修改config

    cd /home/zero/Documents/caffe-master

    cp Makefile.config.example Makefile.config

    直接用gedit打開

    CPU_ONLY := 1

    #這句要去掉comment。因為我們只用cpu

    # USE_OPENCV := 0

    #不用opencv的話也可以去掉,不過最好留著吧。我是在python2下面實在懶才去掉的。

    PYTHON_INCLUDE := /usr/include/python2.7 \

    /usr/lib/python2.7/dist-packages/numpy/core/include

    這兩句,如果是要用python3或者anaconda,一概去掉,如果是原生python2.7,下面的要改為/usr/local/lib/python2.7/dist-packages/numpy/core/include

    ANACONDA_HOME := /home/zero/anaconda3

    PYTHON_INCLUDE := $(ANACONDA_HOME)/include\

    $(ANACONDA_HOME)/include/python3.5m

    \

    $(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include\

    注意是anaconda3,或者anaconda2,帶了數字的

    PYTHON_LIBRARIES := boost_python-py34python3.5m

    這句前面講過,boost版本的問題。

    # PYTHON_LIB := /usr/lib

    PYTHON_LIB := $(ANACONDA_HOME)/lib

    默認就用上面的,anaconda就用下面的。

    INCLUDE_DIRS := $(PYTHON_INCLUDE)/usr/local/include

    /usr/local/protobuf/include

    LIBRARY_DIRS := $(PYTHON_LIB)/usr/local/lib /usr/lib

    /usr/local/protobuf/lib

    注意后面手動添加protobuf的庫。

    8. make

    在caffe根目錄下

    make

    make test

    make runtest

    make pycaffe

    make pytest

    如果測試都通過,那就沒問題了。注意配置文件里面有一個

    WITH_PYTHON_LAYER := 1

    如果這句的注釋去掉就不能pytest了。記得googlegroup上有人這么說過。

    9.配置環境變量:

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

    exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib

    這兩句是配置protobuf的,手動安裝3beta2之后,要添加這兩句,不然系統找不到你安裝的protobuf。如果是2系列的不需要執行這一步。

    # added by Anaconda34.0.0

    installer

    exportPATH="/home/zero/anaconda3/bin:$PATH"

    上面這個是安裝anaconda3的時候自動添加的,如果在問你要不要添加時你直接回車no了,那回頭自己添上這一句。否則python進去的還是系統自帶的python2。前面提到過,晉倪的文章中說建議

    LD_LIBRARY_PATH=home/zero/anaconda3/lib:$LD_LIBRARY_PATH

    export LD_LIBRARY_PATH

    說如果不加就會進不去系統。我沒遇到進不去系統的情況。反而是加了這兩句會導致opencv的報錯。

    exportPYTHONPATH=/home/zero/Documents/caffe-master/python:$PYTHONPATH

    最后這句是caffe的配置,有人居然說可以配置為caffe/build/python,嚴重誤導了我……

    10.驗證

    最后還是需要仔細驗證一下,不然可能空歡喜一場

    python進去后

    import caffe

    如果不報錯也別急著高興

    from caffe import layers as L

    如果這句也不報錯,那應該是不會有問題了。

    萬一第一句成功了結果第二句沒成功,可能是路徑配錯了,用dir(caffe)看看caffe都有些啥。我第一次海市蜃樓的時候只有

    ['__doc__', '__loader__', '__name__','__package__',

    '__path__', '__spec__']。說明是有問題的。

    最后

    雖然自己極盡所能想要做到沒有遺漏,但是由于caffe安裝過程本身重復了太多次,每次錯誤都不同,我沒有時間一一記錄和呈現。萬一有所疏漏,請及時指出。

    關于參考資料,看了太多的博文,沒辦法一一列出,而且根本系統、環境的不同,操作方法也有太多的不一樣。這里要感謝google

    user group上面的兩位網友,針對我的問題他們直接給出了很好的建議。

    總結

    以上是生活随笔為你收集整理的python安装caffe_Caffe安装笔记二:Caffe安装过程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。