Facebook宣布開源Caffe2:可在手機與樹莓派上訓(xùn)練和部署模型
來源:機器之心
為了有效地訓(xùn)練和部署人工智能模型,我們往往會用到大型數(shù)據(jù)中心或超級計算機。為了能夠大規(guī)模地連續(xù)處理、創(chuàng)建和提升各種各樣的信息(圖像、視頻、文本和音頻)之上的模型,我們需要的計算能力不可小覷。如果我們要在移動設(shè)備上部署這些模型,那么它們就必須要非常快而且輕量,但這也同樣十分困難。要克服這些難題,我們需要一種穩(wěn)健的、靈活的和便攜式的深度學(xué)習(xí)框架。
Facebook 一直以來都在和開源社區(qū)的其他開發(fā)者合作一起打造這樣一款框架。今天,F(xiàn)acebook 宣布開源了第一版生產(chǎn)可用的 Caffe2 版本,這是一個輕量級的、模塊化的深度學(xué)習(xí)框架,并且在強調(diào)了便攜性的同時保持了可擴展性和性能。
我們致力于為社區(qū)提供高性能的機器學(xué)習(xí)工具,以便人人都能創(chuàng)造智能的應(yīng)用和服務(wù)。與 Caffe2 一同發(fā)布的還有相關(guān)的一些教程和案例,其中包括在一臺機器上使用多個 GPU 的大規(guī)模學(xué)習(xí)和使用一個或多個 GPU 的在多臺機器上的大規(guī)模學(xué)習(xí)、學(xué)習(xí)在 iOS、Android 和樹莓派上訓(xùn)練和部署模型。另外,你只需要編寫幾行代碼就能調(diào)用來自 Caffe2 Model Zoo 的預(yù)訓(xùn)練模型。
Caffe2 部署在 Facebook 之中以幫助研發(fā)人員訓(xùn)練大型機器學(xué)習(xí)模型,并為手機用戶提供人工智能驅(qū)動的良好體驗。現(xiàn)在,開發(fā)者可以訪問很多相同的工具,允許他們運行大規(guī)模分布式訓(xùn)練方案,并創(chuàng)建手機端的機器學(xué)習(xí)應(yīng)用。我們已與英偉達、 高通、英特爾、亞馬遜和微軟展開密切合作,從而在云端和手機端優(yōu)化 Caffe2。這些合作將允許機器學(xué)習(xí)社區(qū)快速完成使用更復(fù)雜模型的實驗過程,并部署下一代人工智能增強型應(yīng)用和服務(wù)。
你可以在 caffe2.ai 上查看 Caffe2 文檔和教程,并在 GitHub 查看源代碼。如果你考慮使用 Caffe2,我們很樂意了解你的具體需求。請參與我們的調(diào)查。我們將向你發(fā)送有關(guān)新版本和特殊的開發(fā)者活動/網(wǎng)絡(luò)研討會的信息。
主頁:http://caffe2.ai
GitHub: https://github.com/caffe2/caffe2
調(diào)查:https://www.surveymonkey.com/r/caffe2
以下是 Caffe2 在 GitHub 上開源項目的介紹:
Caffe2 是一個兼具表現(xiàn)力、速度和模塊性的深度學(xué)習(xí)框架,是 Caffe 的實驗性重構(gòu),能以更靈活的方式組織計算。
許可
Caffe2 的發(fā)布許可許可 :https://github.com/Yangqing/caffe2/blob/master/LICENSE
建立 Caffe2
詳細的構(gòu)建矩陣:
git clone –recursive https://github.com/caffe2/caffe2.git
cd caffe2
OS X
brew install automake protobuf
mkdir build && cd build
cmake ..
make
Ubuntu
可運行版本:
Ubuntu 14.04
Ubuntu 16.06
需要的依賴包
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 支持
如果你計劃使用 GPU,而不只是使用 CPU,那你應(yīng)該安裝 NVIDIA CUDA 和 cuDNN,這是一個面向深度神經(jīng)網(wǎng)絡(luò)的 GPU 加速庫。英偉達在官方博客中詳細介紹了安裝指南,或者可以嘗試下面的快速安裝指令。首先,一定要升級你的圖顯驅(qū)動!否則你可能遭受錯誤診斷的極大困難。
安裝 Ubuntu 14.04
sudo apt-get update && sudo apt-get install wget -y –no-install-recommends
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_8.0.61-1_amd64.deb"
sudo dpkg -i cuda-repo-ubuntu1404_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
安裝 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
可選擇的依賴項
注意,Ubuntu 14.04 使用 libgflags2。Ubuntu 16.04 使用 libgflags-dev。
# for Ubuntu 14.04
sudo apt-get install -y –no-install-recommends libgflags2
# 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
檢查下面的 Python 部分,并在建立 Caffe2 之前安裝可選擇的程序包。
mkdir build && cd build
cmake ..
make
安卓和 iOS
我們使用 CMake 的安卓和 iOS 端口構(gòu)建原始二進制文件,然后就能將其集成到安卓或 XCode 項目中。查看腳本/build_android.sh 和/build_ios.sh 獲得具體信息。
對于安卓系統(tǒng),我們可以使用 gradle 通過 Android Studio 直接構(gòu)建 Caffe2。這里是一個示例項目:https://github.com/bwasti/AICamera。注意,你可能需要配置 Android Studio,這樣你編寫代碼的 SDK 和 NDK 版本才會正確。
樹莓派
對于 Raspbian 系統(tǒng),只需要在樹莓派上運行腳本/build_raspbian.sh 就行了。
Tegra X1
為了在英偉達的 Tegra X1 平臺上安裝 Caffe2,需要使用 NVidia JetPack 安裝器簡單地安裝最新版本的系統(tǒng),然后再在 Tegra 設(shè)備上運行腳本/build_tegra_x1.sh。
Python 支持
為了進行下面的教程,Python 環(huán)境需要安裝 ipython-notebooks 和 matplotlib,在 OS X 系統(tǒng)中可以通過以下方法安裝:
brew install matplotlib –with-python3
pip install ipython notebook
你會發(fā)現(xiàn)下面的 Python 庫同樣在具體的教程和案例中是必需的,所以你可以運行下面的命令行一次性安裝所有的要求庫:
sudo pip install \
flask \
graphviz \
hypothesis \
jupyter \
matplotlib \
pydot python-nvd3 \
pyyaml \
requests \
scikit-image \
scipy \
setuptools \
tornado
構(gòu)建環(huán)境(已知能運行)