FB宣佈開源Caffe2:可在手機與樹莓派上訓練和部署模型

編程語言 機器學習 GitHub Python 機器之心 2017-04-19

選自Caffe2.ai

機器之心編譯

在今年的 F8 開發者大會上,Facebook 正式宣佈開源其全新深度學習框架 Caffe2。據 Caffe2 官方博客介紹,該框架可以用在 iOS、Android 和樹莓派上訓練和部署模型;而且 Facebook 已經與英偉達、高通、英特爾、亞馬遜和微軟等公司展開了合作來實現對移動端的優化。機器之心在此對這一開源項目進行了介紹。

為了有效地訓練和部署人工智能模型,我們往往會用到大型數據中心或超級計算機。為了能夠大規模地連續處理、創建和提升各種各樣的信息(圖像、視頻、文本和音頻)之上的模型,我們需要的計算能力不可小覷。如果我們要在移動設備上部署這些模型,那麼它們就必須要非常快而且輕量,但這也同樣十分困難。要克服這些難題,我們需要一種穩健的、靈活的和便攜式的深度學習框架。

Facebook 一直以來都在和開源社區的其他開發者合作一起打造這樣一款框架。今天,Facebook 宣佈開源了第一版生產可用的 Caffe2 版本,這是一個輕量級的、模塊化的深度學習框架,並且在強調了便攜性的同時保持了可擴展性和性能。

我們致力於為社區提供高性能的機器學習工具,以便人人都能創造智能的應用和服務。與 Caffe2 一同發佈的還有相關的一些教程和案例,其中包括在一臺機器上使用多個 GPU 的大規模學習和使用一個或多個 GPU 的在多臺機器上的大規模學習、學習在 iOS、Android 和樹莓派上訓練和部署模型。另外,你只需要編寫幾行代碼就能調用來自 Caffe2 Model Zoo 的預訓練模型。

Caffe2 部署在 Facebook 之中以幫助研發人員訓練大型機器學習模型,併為手機用戶提供人工智能驅動的良好體驗。現在,開發者可以訪問很多相同的工具,允許他們運行大規模分佈式訓練方案,並創建手機端的機器學習應用。我們已與英偉達、 高通、英特爾、亞馬遜和微軟展開密切合作,從而在雲端和手機端優化 Caffe2。這些合作將允許機器學習社區快速完成使用更復雜模型的實驗過程,並部署下一代人工智能增強型應用和服務。

你可以在 caffe2.ai 上查看 Caffe2 文檔和教程,並在 GitHub 查看源代碼。如果你考慮使用 Caffe2,我們很樂意瞭解你的具體需求。請參與我們的調查。我們將向你發送有關新版本和特殊的開發者活動/網絡研討會的信息。

  • 主頁:http://caffe2.ai

  • GitHub: https://github.com/caffe2/caffe2

  • 調查:https://www.surveymonkey.com/r/caffe2

以下是 Caffe2 在 GitHub 上開源項目的介紹:

Caffe2 是一個兼具表現力、速度和模塊性的深度學習框架,是 Caffe 的實驗性重構,能以更靈活的方式組織計算。

許可

Caffe2 的發佈許可許可 :https://github.com/Yangqing/caffe2/blob/master/LICENSE

建立 Caffe2

詳細的構建矩陣:

FB宣佈開源Caffe2:可在手機與樹莓派上訓練和部署模型

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,那你應該安裝 NVIDIA CUDA 和 cuDNN,這是一個面向深度神經網絡的 GPU 加速庫。英偉達在官方博客中詳細介紹了安裝指南,或者可以嘗試下面的快速安裝指令。首先,一定要升級你的圖顯驅動!否則你可能遭受錯誤診斷的極大困難。

安裝 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 端口構建原始二進制文件,然後就能將其集成到安卓或 XCode 項目中。查看腳本/build_android.sh 和/build_ios.sh 獲得具體信息。

對於安卓系統,我們可以使用 gradle 通過 Android Studio 直接構建 Caffe2。這裡是一個示例項目:https://github.com/bwasti/AICamera。注意,你可能需要配置 Android Studio,這樣你編寫代碼的 SDK 和 NDK 版本才會正確。

樹莓派

對於 Raspbian 系統,只需要在樹莓派上運行腳本/build_raspbian.sh 就行了。

Tegra X1

為了在英偉達的 Tegra X1 平臺上安裝 Caffe2,需要使用 NVidia JetPack 安裝器簡單地安裝最新版本的系統,然後再在 Tegra 設備上運行腳本/build_tegra_x1.sh。

Python 支持

為了進行下面的教程,Python 環境需要安裝 ipython-notebooks 和 matplotlib,在 OS X 系統中可以通過以下方法安裝:

brew install matplotlib --with-python3

pip install ipython notebook

你會發現下面的 Python 庫同樣在具體的教程和案例中是必需的,所以你可以運行下面的命令行一次性安裝所有的要求庫:

sudo pip install \

flask \

graphviz \

hypothesis \

jupyter \

matplotlib \

pydot python-nvd3 \

pyyaml \

requests \

scikit-image \

scipy \

setuptools \

tornado

構建環境(已知能運行)

FB宣佈開源Caffe2:可在手機與樹莓派上訓練和部署模型

FB宣佈開源Caffe2:可在手機與樹莓派上訓練和部署模型

相關推薦

推薦中...