caffe2 介绍
Caffe2的特性
Caffe2框架可以通過一臺機器上的多個GPU或具有一個及多個GPU的多臺機器來進行分布式訓練。
也可以在iOS系統、Android系統和樹莓派(Raspberry Pi)上訓練和部署模型。
只需要運行幾行代碼即可調用Caffe2中預先訓練好的Model Zoo模型。
Caffe2框架已經應用在Facebook平臺上。
NVIDIA(英偉達),Qualcomm(高通),Intel(英特爾),Amazon(亞馬遜)和Microsoft(微軟)等公司的云平臺都已支持Caffe2。
GitHub上有Caffe2的源代碼
- Caffe2的首頁:http://caffe2.ai/
Facebook 部署 Caffe2 旨在幫助開發人員和研究人員 訓練大規模機器學習模型,并在移動應用中提供 AI 驅動的用戶體驗。現在,開發人員可以獲取許多相同的工具,能夠在大規模分布式場景訓練模型,并為移動設備創建機器學習應用。
Caffe2 是一個兼具表現力、速度和模塊性的深度學習框架,是 Caffe 的實驗性重構,能以更靈活的方式組織計算。
Caffe2安裝
官網上的安裝教程
依賴庫
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 protobufGPU支持
Ubuntu 16.04
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb" sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda安裝 cuDNN(所有都是 Ubuntu 版本)
CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz" wget ${CUDNN_URL} sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig可選擇的依賴項
# for Ubuntu 16.04 sudo apt-get install -y --no-install-recommends libgflags-dev # 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檢查下面的 Python 部分,并在建立 Caffe2 之前安裝可選擇的程序包。
mkdir build && cd build cmake .. makeClone & 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"通過顯示為 Success
出現問題見 gflags.cc’ is being linked both statically and dynamically into this execut
GPU測試執行:
python -m caffe2.python.operator_test.relu_op_test在/usr/local/caffe2、/home/bids/softwares/caffe2/build(你的build路徑)路徑生成caffe2的python文件,在/usr/local/lib路徑生成庫文件。
環境變量設置
具體設置更改對應shell的配置文件
sudo vim ~/.bashrc添加
export PYTHONPATH=/usr/local:$PYTHONPATH export PYTHONPATH=$PYTHONPATH:/home/bids/softwares/caffe2/build export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH環境變量生效
source ~/.bashrcCaffe2 Tutorials
Caffe2 Tutorials Overview
TUTORIAL ON DEEP LEARNING FOR VISION
Hacker’s guide to Neural Networks
Neural Networks and Deep Learning
Caffe2原理
Caffe2 的原理與 Caffe 相同,開發原則可以概括為以下5點:
- 表達(Expression):模型和優化被定義為純文本模式(plaintext schema)而不是代碼。
- 速度:對學界和產業界都一樣,速度對于最先進的模型和大數據至關重要。
- 模塊化:新任務和設置需要靈活性和擴展性。
- 開放性:科學和應用進步需要通用代碼(common code),參考模型和– 重現性(reproducibility)。
- 社區:學術研究、startup prototypes 和工業應用通過在 BSD-2 項目中聯合討論和開發,共享實力。
Caffe2和Caffe有何不同?
Caffe2的基本計算單位是Operator。對于適當數量和類型的輸入參數,每個Operator都包括所需的計算邏輯。Caffe和Caffe2的總體差異如下圖所示:
官方提供了從Caffe遷移到Caffe2的教程,據說這個遷移非常簡單。
Caffe2和PyTorch有何不同?
Caffe2長于移動和大規模部署。雖然Caffe2新增了支持多GPU的功能,這讓新框架與Torch具有了相同的GPU支持能力,但是如前所述,Caffe2支持一臺機器上的多個GPU或具有一個及多個GPU的多臺機器來進行分布式訓練。
PyTorch適合進行研究、實驗和嘗試不同的神經網絡;而Caffe2更偏向于工業應用,而且重點關注在移動端上的表現。
Caffe2視作一種生產力的選擇,而Torch視作研究型的選擇。
參考文獻
Caffe2正式發布!新框架有何不同?賈揚清親自解答
caffe2 安裝與介紹
caffe2
【重磅】Facebook 開源產業級深度學習框架 Caffe2,帶來跨平臺機器學習工具
Caffe2 Open Source Brings Cross Platform Machine Learning Tools to Developers
總結
- 上一篇: 值得关注的医疗 AI 公司(待续)
- 下一篇: shutil.rmtree()