CaffeOnSpark安裝和使用教程系列一:CaffeOnSpark的安裝_CaffeOnSpark

來源:互聯網
上載者:User

     由於實習公司的任務要求,需要學習CaffeOnSpark的安裝和使用,作為一個對DL學習不到一個月的小白,拿到這個任務的時候真的是一臉懵逼,沒招只能上網找教程。可能這個技術比較新,網上的教程比較少,比較詳細的一個是:

參考教程。這個教程對於有一定深度學習基礎的朋友來說應該足夠了,但像我這樣入門級的菜鳥,中間會掉一個又一個的坑。通過半個多月的掉坑、爬坑的痛哭煎熬過程,終於完成了CaffeOnSpark的安裝和測試案例的使用。廢話不多說,直接上乾貨。

說明:本教程預設hadoop和spark叢集已經搭建完成,由於網上關於搭建hadoop叢集和spark叢集的教程很多,在此就不過多介紹具體的搭建過程。

1、更新源

    sudo apt-get update

2、下載CaffeOnSpark

確保伺服器中已經安裝git,如果沒有,執行如下命令:

sudo apt-get install git

下載CaffeOnSpark:

sudo git clone https://github.com/yahoo/CaffeOnSpark.git --recursive

3、安裝maven

   (1)確保已經安裝好jdk

   (2)下載apache-maven-3.2.5-bin.tar.gz

   (3)解壓

        tar -zxvf  apache-maven-3.2.5-bin.tar.gz

   (4)修改環境變數

        sudo vim /etc/profile

       在末尾添加:

       export M2_HOME=/home/master/software/apache-maven-3.2.5

       export PATH=$M2_HOME/bin:$PATH

      使環境變數生效

       source /etc/profile

  (5)檢測是否安裝成功

       mvn -v

       如果出現如下結果表示安裝成功:

 

4、安裝Caffe

   (1)安裝依賴包

        sudo apt-get install libprotobuf-dev protobuf-compiler

        sudo apt-get install libleveldb-dev

        sudo apt-get install libsnappy-dev

        sudo apt-get install libopencv-dev

        sudo apt-get install libhdf5-serial-dev

        sudo apt-get install --no-install-recommends libboost-all-dev

        sudo apt-get install libatlas-base-dev

        sudo apt-get install python-dev

        sudo apt-get install libgflags-dev

        sudo apt-get install libgoogle-glog-dev

        sudo apt-get install liblmdb-dev

   (2)下載Caffe

      git clone https://github.com/bvlc/caffe.git

(3)修改Caffe中的Makefile.config,開啟CPU_ONLY選項:

   cd caffe/

   mv Makefile.config.example Makefile.config

   vim Makefile.config

   去掉CUP_ONLY :=1前邊的“#”

(4)編譯Caffe

     make all

4、修改CaffeOnSpark中caffe-public下的Makefile.config設定檔:

   cd CaffeOnSpark/caffe-public

   sudo mv Makefile.config.example Makefile.config

   sudo vim Makefile.config

去掉CUP_ONLY :=1前邊的“#”

 

在設定檔中添加:

 

INCLUDE_DIRS +=${JAVA_HOME}/include

5、編譯CaffeOnSpark

  在CaffeOnSpark的主目錄下執行命令:

  sudo make build

  使用sudo為了保證編譯過程中對系統訪問的許可權,但是最好之前先運行:

  alias sudo=”sudo env PATH=$PATH”

  註:因為系統預裝的sudo在編譯時間預設使用了--with-secure-path參數,因此目前使用者使用sudo時,之前設定的環境變數$PATH會被覆蓋。通過添加上面那行別名設定,就會在執行sudo時把當前的$PATH的值再套用上,達到想要的效果。

出現下述資訊,則表示編譯成功:

 

註:1、判斷編譯成功有兩個標誌:一是比較在輸出資訊中明顯的看到BUILD SUCCESS;二是在控制台看到All tests passed資訊輸出。由於在CaffeOnSpark編譯過程中會自動進行測試,有“All tests passed”資訊輸出,表示通過了所有的測試案例。

    2、在編譯過程中需要下載很多東西,需要較長的時間。如果網路不好的話,可能出現編譯出錯的提示,可以等到網路穩定了在make build一次。

   在編譯過程中會進行測試,可通過Spark叢集的master:4040web頁面查看測試案例的執行情況:

註:1、在編譯CaffeOnSpark時,若出現如下錯誤:

 

解決辦法:

          sudo apt-get install python-numpy

  2、在編譯CaffeOnSpark時,出現:

 

產生原因:沒有指定Spark叢集的Master節點IP

解決辦法:在Spark的conf目錄下修改spark-env.sh設定檔:

添加:

    export SPARK_MASTER_IP=192.168.1.107

   3、在編譯CaffeOnSpark時,出現如下錯誤(比較重要的問題,若在編譯過程中不解決,在隨後使用過程中也會出現類似問題):

ERROR: testTrain (__main__.PythonApiTest)

----------------------------------------------------------------------

Traceback (most recent call last):

  File "/home/master/CaffeOnSpark/caffe-grid/src/test/python/PythonApiTest.py", line 28, in setUp

    self.cos=CaffeOnSpark(sc)

  File "/home/master/CaffeOnSpark/caffe-grid/target/caffeonsparkpythonapi.zip/com/yahoo/ml/caffe/CaffeOnSpark.py", line 25, in __init__

    self.__dict__['caffeonspark']=wrapClass("com.yahoo.ml.caffe.CaffeOnSpark")

 

產生原因:從上邊截取的部分錯誤資訊記錄可以看到出現的錯誤在com.yahoo.ml.caffe包下的CaffeOnSpark類中。在該類中需要調用Spark sql包中的UserDefinedFunction類的相關介面,但在Spark2.0的版本org.apache.spark.sql包已經沒有UserDefinedFunction這個類。

解決辦法:按照yahoo在Github上CaffeOnSpark的官方文檔中的介紹更改hadoop和spark的版本,使用hadoop的版本為hadoop-2.6.4,spark的版本為spark-1.6.0。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.