1. 程式人生 > >(譯)綜合指南:通過Ubuntu 16.04上從Source構建來安裝支持GPU的Caffe2

(譯)綜合指南:通過Ubuntu 16.04上從Source構建來安裝支持GPU的Caffe2

疑問 選項 靈活性 vid 克隆 .profile rop prope 特定

(譯)綜合指南:通過Ubuntu 16.04上從Source構建來安裝支持GPU的Caffe2

譯者註:

原文來自:https://tech.amikelive.com/node-706/comprehensive-guide-installing-caffe2-with-gpu-support-by-building-from-source-on-ubuntu-16-04/?tdsourcetag=s_pctim_aiomsg, 不得不說該文作者知識比較豐富,研究比較深入,環境的配置講解比較詳細。個人認為這篇博客價值比較大,可能這篇博客會對深度學習的工作者們提供一定的幫助,所以打算翻譯下來,並盡量還原原文的意思。如果有侵權,請聯系我。

技術分享圖片

通過基礎設施設置(譯者註:即深度環境),我們可以方便地開始鉆研深度學習,構建,訓練和驗證深度神經網絡模型,並將模型應用到特定問題域。將深度學習原語轉換為低級字節碼執行可能是一項艱巨的任務,特別是對於沒有深度學習計算興趣的從業者。幸運的是,有幾個深度學習框架提供高級編程接口,以幫助執行深度學習任務。(即深度學習平臺)

在這篇文章中,我們將介紹Caffe2的安裝,這是一個主要的深度學習框架。Caffe2采用Caffe,這是由加州大學伯克利分校Barkeley Vision and Learning Center(BVLC)開發的深度學習框架。Caffe2的開始旨在改善Caffe,特別是為了更好地支持大規模分布式模型培訓,移動部署,降低精度計算,新硬件以及移植到多個平臺的靈活性。

為什麽從源安裝?

需要註意的是,除了從源進行安裝,還有一些更簡單的選項,例如通過拉動和運行Caffe2 Docker鏡像。可以在此處訪問Caffe2映像的Docker存儲庫。盡管如此,如果您觀察列表,image(docker中鏡像)不是最新的,它們是針對舊版本的CUDA工具包和cuDNN構建的。因此,打算使用最新的Caffe2,CUDA或cuDNN功能的人應該考慮從源代碼進行安裝。

Caffe2 現在是Pytorch的一部分

之前caffe2是一個獨立的庫來維護的。自從2018年3月底依賴,Caffe2就已經被合並到Pytorch倉庫中了,(譯者註:現在已經不能通過單獨編譯caffe2的源代碼得到Caffe2了,已經無法將所有模塊clone下來了)。所以Caffe2的共同構建過程已經被集成到了pytorch中去。

關於源代碼合並的動機可能存在疑問。正如公告文章中所解釋的那樣,合並之前是Caffe2和Pytorch之間的開發基礎設施共享,導致共享代碼和公共庫的數量不斷增加。然後得出結論,將兩個項目合並為一個代碼庫將提高工程效率並提高框架的穩健性,尤其是在模型部署領域。

如果先前安裝了Caffe2怎麽辦?在源代碼合並之前安裝Caffe2時,構建過程將輸出隨後復制到指定目錄的頭文件,動態庫和python庫。從理論上講,用最新版本的文件替換舊的頭文件和庫文件就足夠了。如果它不起作用,則在繼續安裝之前首先從已安裝的目錄中刪除舊文件,然後進行清理

先決條件

我們將安裝支持GPU的Caffe2。本文僅介紹具有NVIDIA GPU的計算機的安裝過程。在完成安裝之前,請驗證是否滿足這些項目。

  1. 確認已正確安裝NVIDIA圖形驅動程序。

    您可以參考本文了解NVIDIA圖形驅動程序的安裝和功能檢查。

  2. 驗證是否已安裝CUDA工具包。
    如果您尚未安裝CUDA工具包,不確定它是否已安裝,或者是否要安裝較新版本的CUDA工具包,請參閱本文,其中提供了有關CUDA工具包安裝的更多詳細信息。

  3. 驗證是否已安裝cuDNN。有關cuDNN安裝的更多詳細信息,
    請參閱此文章

  4. 從先前的Caffe2安裝中刪除文件
    如果您之前安裝了Caffe2並且想要進行升級,則可能需要清除在先前的Caffe 2安裝中創建和復制的文件。
    註意:這通常可以跳過,因為構建工具將首先檢查系統中安裝的Caffe2的現有版本,然後再用新的版本替換它

sudo rm -vRf /usr/local/include/caffe2
sudo rm -vf /usr/local/lib/libcaffe2*

此外,我們可能需要從Python包目錄中刪除python API(路徑可能因安裝的Python版本而異)。

sudo rm -vRf /usr/local/lib/python2.7/dist-packages/caffe2

檢查完所有先決條件後,我們現在可以繼續安裝。

安裝步驟

可以通過按順序執行這些步驟來完成安裝。

  1. 更新apt包索引
sudo apt-get update
  1. 安裝apt包依賴
sudo apt-get install -y --no-install-recommends build-essential cmake git libgoogle-glog-dev libgtest-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev openmpi-bin openmpi-doc protobuf-compiler python-dev python-pip
  1. 安裝pip依賴
sudo pip install --upgrade pip
sudo pip install setuptools future numpy protobuf
sudo apt-get install -y --no-install-recommends libgflags-dev
  1. 將Caffe 2克隆到本地目錄中

註意:我們創建一個名為caffe2-pytorch的目錄,並將Pytorch git repository克隆到此目錄中。

mkdir caffe2-pytorch && cd caffe2-pytorch
git clone --recursive https://github.com/pytorch/pytorch.git ./
git submodule update --init
  1. 建立Caffe 2
mkdir build && cd build
cmake ..
sudo make -j"$(nproc)" install

註意:構建源代碼時,我們提供-j標誌。該標誌指的是在構建源代碼時編譯器(即GCC)可以生成的線程數。該NPROC命令本身會打印可用的CPU數量。簡而言之,我們希望通過創建多個線程來加快編譯時間,這些線程相當於並行執行編譯的CPU數量。

  1. 為Caffe 2共享庫創建符號鏈接
sudo ldconfig
  1. 驗證Caffe2的庫文件和頭文件是否已經安裝好
  • 更新本地database
sudo updatedb
  • 確保libcaffe2.so在/usr/local/lib
locate libcaffe2.so
  • 確認頭文件是不是在/usr/local/include
locate caffe2 | grep /usr/local/include/caffe2
  1. 將Caffe2添加到Python 庫路徑中,以便於其他應用能夠通過路徑找到該文件
vim ~/.profile

# set python path
if [ -z “$PYTHONPATH” ]; then
    PYTHONPATH=/usr/local
else 
    PYTHONPATH=/usr/local:$PYTHONPATH
fi

#set library path
if [ -z “$LD_LIBRARY_PATH” ]; then
    LD_LIBRARY_PATH=/usr/local/lib
else
    LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
fi

我們還可以使用參數擴展設置庫路徑,如下所示:

PYTHONPATH=/usr/local${PYTHONPATH:+:${PYTHONPATH}}
LD_LIBRARY_PATH=/usr/local/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

讓新路徑生效

source ~/.profile
  1. 驗證Caffe2 python模塊是否可以被正確調用
$ python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
  1. 驗證Caffe2是否可以在GPU支持下運行
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

(譯)綜合指南:通過Ubuntu 16.04上從Source構建來安裝支持GPU的Caffe2