1. 程式人生 > >caffe2 安裝與介紹

caffe2 安裝與介紹

時間 upd exp 標註 nds target over sym star

http://blog.csdn.net/yan_joy/article/details/70241319

標簽: 深度學習 技術分享 分類:

一早發現caffe2的較成熟的release版發布了(the first production-ready release),那麽深度學習平臺在之後一段時間也是會出現其與tensorflow相互競爭的局面。
從打開這個caffe2的官網就會發現,有了Facebook的支持,連界面也好看多了。不過再仔細看看,覺得又和tensorflow有一絲像,從內到外。

Caffe 2 Caffe2


Caffe2 中基本計算單元之一是 Operators。每個 Operator 包含給定適當數量和類型的輸入和參數來計算輸出所需的邏輯。Caffe 和 Caffe2 功能的總體差異如下圖所示:

One of basic units of computation in Caffe2 are the Operators. Each operator contains the logic necessary to compute the output given the appropriate number and types of inputs and parameters. The overall difference between operators’ functionality in Caffe and Caffe2 is illustrated in the following graphic, respectively:

技術分享
看到這段話,是不是更覺得像是tensorflow了?之前layer的概念被弱化,數據與操作完全分開,不就是tensorflow裏面需要定義的tf.matmultf.Variable這類嗎?
其次提出的workspace概念很像是tf中的Session:

# Create the input data
data = np.random.rand(16, 100).astype(np.float32)

# Create labels for the data as integers [0, 9].
label = (np.random.rand(16) * 10).astype(np.int32)

workspace.FeedBlob("data", data)
workspace.FeedBlob("label", label)

# Create model using a model helper
m = cnn.CNNModelHelper(name="my first net")
fc_1 = m.FC("data", "fc1", dim_in=100, dim_out=10)
pred = m.Sigmoid(fc_1, "pred")
[softmax, loss] = m.SoftmaxWithLoss([pred, "label"], ["softmax", "loss"])


54

網絡的編寫也向tf靠攏了(學了點tf還是有點用的)。

最後還要說一點就是對Python的支持大大增強了,當然這也是深度學習的趨勢。

安裝


4.18發布的版本號為v0.7.0,官網上的安裝教程比較詳細,也比較好操作Install。

依賴庫

sudo apt-get update
sudo apt-get install -y --no-install-recommends       build-essential       cmake       git       libgoogle-glog-dev       libprotobuf-dev       protobuf-compiler       python-dev       python-pip                          
sudo pip install numpy protobuf

GPU支持

這一部分主要是CUDA與cuDNN,在之前的博客中有講到過。

可選庫

# for both Ubuntu 14.04 and 16.04
sudo apt-get install -y --no-install-recommends       libgtest-dev       libiomp-dev       libleveldb-dev       liblmdb-dev       libopencv-dev       libopenmpi-dev       libsnappy-dev       openmpi-bin       openmpi-doc       python-pydot
sudo pip install       flask       graphviz       hypothesis       jupyter       matplotlib       pydot python-nvd3       pyyaml       requests       scikit-image       scipy       setuptools       tornado
  • 針對Ubuntu 14.04:
sudo apt-get install -y --no-install-recommends libgflags2
  • 1

  • 針對Ubuntu 16.04:
sudo apt-get install -y --no-install-recommends libgflags-dev
  • 1

Clone & Build

git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
make && cd build && sudo make install
python -c ‘from caffe2.python import core‘ 2>/dev/null && echo "Success" || echo "Failure"
  • 1
  • 2
  • 3

這一步在我這邊很慢,clone的速度大概只有幾十kb,而且中途也出現了錯誤。如果選擇用zip打包下載,就會出現caffe2/third_party/目錄中第三方包缺失的情況,這時還要自己手動下載。

GPU測試可以執行:

python -m caffe2.python.operator_test.relu_op_test
  • 1

這步安裝完成之後,會在/usr/local/caffe2/home/user/caffe2/build(你的build路徑)路徑生成caffe2的python文件,在/usr/local/lib路徑生成庫文件。

設置環境變量

設置正確的話,執行命令會有#後這樣的輸出

echo $PYTHONPATH
# export PYTHONPATH=/usr/local:$PYTHONPATH
# export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
echo $LD_LIBRARY_PATH
# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

具體設置更改對應shell的配置文件,一般來說

sudo vim /etc/profile

在最後加上

export PYTHONPATH=/usr/local:$PYTHONPATH
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  • 1

就可以了。

總結


目前caffe2還不是很成熟,某些文檔也還不齊,安裝也可以不用很著急,熟悉一下操作就好。mask-rcnn不就應該就會在這上面放出源碼,可以稍稍再期待一下。

caffe2 安裝與介紹