當前位置:
首頁 > 知識 > 加入巨頭競爭之列,索尼開源神經網路庫NNabla

加入巨頭競爭之列,索尼開源神經網路庫NNabla

選自Sony

機器之心編譯

參與:蔣思源、李澤南

索尼昨天宣布開源了自己的神經網路庫 NNabla,其中包含用於深度學習系統的 Python API 與用於嵌入式設備的 C++ API。彭博社也表示索尼正在加入谷歌、Facebook 和亞馬遜等巨頭的人工智慧開發競爭。

神經網路是深度學習模型的核心,後者自 2012 年在圖像識別領域獲得突破性進展以來獲得了人們的廣泛關注。現在,深度學習已經在很多領域中獲得應用,它不僅僅是一種圖像識別的演算法,也是一種用於建模的黑箱系統。

用於處理深度學習模型的架構各有不同:從小到大,從前饋到循環,從非監督到監督……對於深度學習技術的研究發展也有很快速度,新的架構、組件或神經網路每天都在出現。目前裝備 GPU 的高性能深度學習計算機或集群,對於運行深度學習的移動設備、物聯網設備的要求也在催生技術的發展。

索尼從 2010 年起就加入了深度學習的研究行列。這次開源的深度學習核心庫已是其研究成果的第三代了,它包含以下特性:

CUDA 兼容性。

它擁有 Python API,因此最大化了設計神經網路模型的靈活性,並且還能支持快速的原型設計和測試。

同時支持靜態和動態計算圖(computation graphs)。靜態計算圖在速度和內存上有更高的效率,而動態計算圖在設計模型上更加靈活。

有各種內置的神經網路模塊,如函數、運算元和優化器等。該神經網路庫的模塊軟體架構允許開發者添加新的模塊,因此開發者可以基於新的研究思路實現更快的原型設計、產品或服務部署。

它由輕便、輕量的 C++11 核所編寫,並能在多個平台上運行。該框架已經在 Linux (Ubuntu 16.04) 和 Windows (8, 10) 上進行了測試。

極高的速度和內存效率。計算圖引擎允許安全的原位計算(in-place computation)和內存分享,這將極大地將少內存的佔用。因此該框架的設計僅採用少量的計算負載就能執行前向和後向傳播。

為各種計算方案而設計的解耦合實現(Decoupled implementation)介面允許為每一個計算方案提供插件式的開發方案。開發者可以更關注函數運算元實際計算的特定實現,而不用管計算圖引擎與其內存優化等。

索尼官方將很快發出更具體更詳細的神經網路庫使用方法。

索尼表示他們的神經網路庫提供了最基本的深度學習開發研究和部署的函數。他們希望該軟體庫能推動人工智慧的發展,並且不論是在先進研究領域還是前沿應用部署上都能提供強有力的助力。

項目地址:https://github.com/sony/nnabla

說明文檔:https://nnabla.readthedocs.io/

項目官網:https://nnabla.org/

下面是該神經網路庫的 Github 項目介紹:

NNabla 是一個深度學習框架,計劃在研究,開發與生產領域當中使用。索尼的目標是讓它可以在任何地方運行,就像個人筆記本電腦、高性能計算集群、嵌入式裝置和生產伺服器一樣。因此索尼希望通過提供高效便捷的機器學習庫而將演算法嵌入到邊緣設備中。

安裝

安裝 NNabla 很簡單:

pip install nnabla

這是 CPU 版本的 NNabla,GPU-加速器可以通過安裝 CUDA 工具包來添加:pip install nnabla-ext-cuda

特徵

簡單,靈活並且有表現力

基於 NNabla C++11 內核的 Python API 給你提供了靈活性和高產出效率。例如,一個帶有分類損失的兩層神經網路可以僅通過以下 5 行代碼被定義(超參數由括出)。

import nnabla as nn

import nnabla.functions as F

import nnabla.parametric_functions as PF

x = nn.Variable() t = nn.Variable() h = F.tanh(PF.affine(x, , name="affine1")) y = PF.affine(h, , name="affine2") loss = F.mean(F.softmax_cross_entropy(y, t))

訓練可以通過以下步驟來完成:

import nnabla.solvers as S

# Create a solver (parameter updater)

solver = S.Adam() solver.set_parameters(nn.get_parameters())

# Training iteration

for n in range():

# Setting data from any data source x.d = t.d = # Initialize gradients solver.zero_grad()

# Forward and backward execution loss.forward() loss.backward()

# Update parameters by computed gradients solver.update()

動態計算圖使網路結構的執行時間變得靈活。NNabla 可以使用靜態和動態圖的模型,在兩種情況下都使用相同的 API。

x.d =

t.d =

drop_depth = np.random.rand()

with nn.auto_forward(): h = F.relu(PF.convolution(x, , (3, 3), pad=(1, 1), name="conv0"))

for i in range():

if drop_depth[i]:

continue # Stochastically drop a layer h2 = F.relu(PF.convolution(x, , (3, 3), pad=(1, 1), name="conv%d" % (i + 1))) h = F.add2(h, h2) y = PF.affine(h, , name="classification") loss = F.mean(F.softmax_cross_entropy(y, t))

# Backward computation (can also be done in dynamically executed graph)

loss.backward()

攜帶型和多平台

Python API 能夠在 Linux 和 Windows 上使用。

大多數函數庫的代碼都是使用 C++11 寫的,所以可以部署到嵌入設備中。

可擴展性

可以像神經網路運算符和優化器那樣添加新的模塊。

該軟體庫允許開發者添加特定的實現(如在 FPGA 上的實現等)。例如我們提供 CUDA 後端作為擴展,這將可以利用 GPU 加速計算來加速演算法。

高效性

在單塊 CUDA GPU 上速度極快

內存優化引擎

支持多 GPU(即將可用)

文檔

https://nnabla.readthedocs.org

安裝

https://nnabla.readthedocs.io/en/latest/python/installation.html

入門指南

在 tutorial 頁面中可以找到很多 Jupyter notebook 教程。我們建議由 by_examples.ipynb 開始在 NNabla 學習第一個案例,python_api.ipynb 文檔介紹了 NNabla API。

我們同樣在 examples 中提供了一些其他複雜的案例。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

作為谷歌的最大競爭對手,亞馬遜的錢都投向哪裡了?
用 AI 撬動英國巴克萊、迪拜國民銀行、美國神秘大型銀行,這位 26 歲的創業者如何做到的?
六大舉措告訴你,金融機構應該如何應用 AI
用 AI 撬動巴克萊、埃森哲、英特爾、勞斯萊斯,這位 26 歲的連續創業者如何做到的?
MIT提出mNeuron:一個可視化深度模型神經元的Matlab插件

TAG:機器之心 |

您可能感興趣

英特爾收購Barefoot進軍網路晶元領域,與博通展開競爭
7月新技術雙WiFi網路加速!vivo和OPPO展開激勵競爭
印度打車應用Ola宣布進軍澳大利亞 與Uber直接競爭
聯想發布Legion Game Store:加入在線遊戲競爭
迪士尼將推出Display Plus 與蘋果競爭流媒體服務資源
沃爾瑪將推流媒體服務與Netflix競爭
亞馬遜推出車載智能助理Auto SDK,踏足與Carplay的競爭
Nike反擊,adidas將遭遇更大競爭壓力;寺庫與Bally母公司達成合作;奢侈品牌首次贊助巴塞羅那足球俱樂部
沃爾沃的Polestar性能品牌正在開發特斯拉Model 3的競爭對手
網路安全行業競爭格局之變:谷歌Chronicle發布首款信息安全數據平台——Backstory
加速網頁!谷歌計劃將AMP技術標準化 用速度與Facebook競爭
B站與索尼旗下Funimation達成戰略合作,深化動畫領域競爭力
NAND Flash的最新競爭格局,長江存儲成為黑馬
iPhone將採用三攝;傳Facebook致力開發語音助力服務與亞馬遜競爭
Mobvista CEO段威:在海外市場如何與巨頭平台競爭?
競爭加劇!印度打車巨頭 Ola 進軍悉尼市場
專訪Notail:歐洲區的競爭最為激烈
Nest重新加入谷歌 或與蘋果亞馬遜進行競爭
Airbnb將精品酒店納入房源 和OTA競爭加劇
Facebook成立AR業務部門,巨頭加速AR競爭