日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給汪思穎
發(fā)送

0

微軟開源 repo 1.0 ,旨在創(chuàng)造深度學(xué)習(xí)框架通用語言

本文作者: 汪思穎 2018-03-25 20:55
導(dǎo)語:號稱深度學(xué)習(xí)框架的「Rosetta Stone(羅塞塔石碑)」

雷鋒網(wǎng) AI 研習(xí)社按,日前,微軟提出深度學(xué)習(xí)框架的通用語言——repo1.0,號稱希望通過構(gòu)建這一深度學(xué)習(xí)框架「Rosetta Stone(羅塞塔石碑)」,讓研究者們能夠在不同框架之間輕松運用專業(yè)知識。他們在博客中講解了基準(zhǔn)深度學(xué)習(xí)框架的訓(xùn)練結(jié)果和相應(yīng)的經(jīng)驗教訓(xùn),雷鋒網(wǎng) AI 研習(xí)社編譯整理如下。

大家好,很高興發(fā)布 repo 1.0 版本,目前我們已經(jīng)將其在 GitHub 開源,地址如下:

https://github.com/ilkarman/DeepLearningFrameworks

我們相信深度學(xué)習(xí)框架就像語言一樣,就像很多人說英語,但每種語言都有各自的使用人群,都有其特定的用法。

我們已經(jīng)為幾個不同的網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)建了通用代碼,并將代碼在許多不同的框架中執(zhí)行。

我們的想法是創(chuàng)建一個深度學(xué)習(xí)框架的「Rosetta Stone(羅塞塔石碑)」——只需要了解一個框架就能延伸到任何框架,并幫助其他人。之后,可能出現(xiàn)這種情況:一篇論文中的代碼是用其他框架,或者整個流程都能使用另一種語言。與其利用你最喜歡的框架中從頭開始編寫模型,還不如直接使用「其他」語言。

再次感謝 CNTK、Pytorch、Chainer、Caffe2 和 Knet 團隊,以及過去幾個月在開源社區(qū)中為 repo 做出貢獻的人員。

這次我們發(fā)布的目標(biāo)是如下幾點:

一個深度學(xué)習(xí)框架的羅塞塔石牌,能讓數(shù)據(jù)科學(xué)家輕松在不同框架間利用其專業(yè)知識

  • 使用最新最高級別 API 的最優(yōu) GPU 代碼

  • 比較不同 GPU 的常見設(shè)置(可能是 CUDA 版本和精度)

  • 比較不同語言的常見設(shè)置(Python、Julia、R)

  • 驗證安裝之后的性能

  • 不同開源社群之間的協(xié)作

基準(zhǔn)深度學(xué)習(xí)框架的訓(xùn)練結(jié)果

下面,我們將帶來一類 CNN 模型(從預(yù)訓(xùn)練過的 ResNet50 中提取特征)和一類 RNN 模型的訓(xùn)練時間。

  • 訓(xùn)練時間(s):CNN(VGG-style,32bit)在 CIFAR-10 上進行圖像識別

該模型的輸入是標(biāo)準(zhǔn) CIFAR-10 數(shù)據(jù)集,數(shù)據(jù)集中包含 5 萬張訓(xùn)練圖像和 1 萬張測試圖像,均勻地分為 10 類。每張 32×32 的圖像看成 (3, 32, 32) 的張量,像素值從 0-255 調(diào)整至 0-1。

微軟開源 repo 1.0 ,旨在創(chuàng)造深度學(xué)習(xí)框架通用語言

處理 1000 張圖片的平均時間(ResNet-50——特征提?。?/strong>

加載預(yù)訓(xùn)練的 ResNet50 模型,在最后(7、7)的 avg_pooling 截斷,輸出 2048D 向量??梢詫⑵洳迦?softmax 層或其他分類器如增強樹來執(zhí)行遷移學(xué)習(xí)??紤]到 warm start,這種僅前向傳播到 avg_pool 層是定時的。(注意:批次大小是常量,增加 GPU 內(nèi)存可帶來性能提升(GPU 內(nèi)存越大性能越好)。

微軟開源 repo 1.0 ,旨在創(chuàng)造深度學(xué)習(xí)框架通用語言

訓(xùn)練時間(s):在 IMDB 上,用 RNN (GRU) 執(zhí)行情感分析

該模型的輸入為標(biāo)準(zhǔn) IMDB 電影評論數(shù)據(jù)集,包含二萬五千個訓(xùn)練評論和兩萬五千個測試評論,數(shù)據(jù)被均勻分成兩類 (正/負(fù))。我們遵循 Keras(https://github.com/fchollet/keras/blob/master/keras/datasets/imdb.py)上的方法,將 start-character 設(shè)置為 1, out-of-vocab (使用三萬大小的 vocab) 表示為 2,單詞索引從 3 開始。

微軟開源 repo 1.0 ,旨在創(chuàng)造深度學(xué)習(xí)框架通用語言

希望大家都能來嘗試,增加更多更豐富的數(shù)據(jù)。

以下是一些經(jīng)驗教訓(xùn)

  • 使用自動調(diào)參:

    大多數(shù)框架使用 cuDNN 中的 cudnnFindConvolutionForwardAlgorithm() 進行窮舉搜索,優(yōu)化算在固定大小的圖像上的前向卷積算法。這通常是默認(rèn)的,但一些框架可能需要諸如「torch.backends.cudnn.benchmark = True」的標(biāo)記。

  • 多用 cuDNN:

    對于普通的 RNNs(如基本 GRUs/LSTMs),通??梢哉{(diào)用 cuDNN 封裝器來提速,例如用 cudnn_rnn.CudnnGRU() 取代 rnn.GRUCell()。這樣做的缺點是接下來在 CPU 上進行推理可能會更具挑戰(zhàn)。

  • 形狀匹配:

    在 cuDNN 上運行時,匹配 CNNs 中 NCHW 和 RNNs 中 TNC 的原始 channel-ordering,避免在重塑上浪費時間,直接進行矩陣乘法。

  • 原始生成器:

    使用框架的原始生成器,這樣可以通過多線程異步來進行增強和預(yù)處理(例如 shuffling),從而加速。

  • 針對推斷:

    要確保指定 flag 來避免計算的不必要的梯度,確保 batch-norm 和 drop-out 等層得到合理使用。

當(dāng)我們最初創(chuàng)建 repo 時,需要使用許多小技巧來確??蚣苤g使用的是相同的模型,并且是以最佳的方式運行。在過去的幾個月里,這些框架的改良速度快得令人難以置信。2017 年末的許多經(jīng)驗教訓(xùn)在現(xiàn)在已經(jīng)過時了,因為這些框架已經(jīng)更新。

通過在不同的框架中完成端到端解決方案,可以以多種方式比較框架。由于每個框架中使用的都是相同的模型結(jié)構(gòu)和數(shù)據(jù),所以框架間的準(zhǔn)確度非常相似。此外,我們開發(fā)的目的是使框架之間的對比更簡單,而不是為了加速。

當(dāng)然,我們是為了比較不同框架之間的速度和推理,而不是為了展示框架的整體性能,因為這里忽略了一些重要的對比,例如幫助和支持、可用的預(yù)訓(xùn)練模型、自定義層和架構(gòu)、數(shù)據(jù)加載器、調(diào)試、不同的平臺支持、分布式訓(xùn)練等等。我們開源 repo 只是為了展示如何在不同的框架上創(chuàng)建相同的網(wǎng)絡(luò),并評估在一些特定案例上的性能。

via:https://blogs.technet.microsoft.com

雷鋒網(wǎng) AI 研習(xí)社編譯整理

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

微軟開源 repo 1.0 ,旨在創(chuàng)造深度學(xué)習(xí)框架通用語言

分享:
相關(guān)文章

編輯

關(guān)注AI學(xué)術(shù),例如論文
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄