偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Google Brain工程師演講實(shí)錄:TensorFlow與深度學(xué)習(xí)

人工智能 深度學(xué)習(xí)
Google Brain 的工程師首先跟大家分享深度深入學(xué)習(xí)的例子,然后再跟大家簡(jiǎn)單介紹一下什么是 TensorFlow ,以及 TensorFlow 一些最新特性,包括即將公開(kāi)甚至還沒(méi)有完成一些的特性,最后的時(shí)間簡(jiǎn)要介紹一下 Google Brain 兩個(gè)研究項(xiàng)目。

Google Brain工程師演講實(shí)錄:TensorFlow與深度學(xué)習(xí)

本文是Google Brain工程師周玥楓在QCon上海2017和DevFest 2017上的演講實(shí)錄,由GDG整理和發(fā)布。

我的名字叫做周玥楓,我是 Google Brain 的工程師,我現(xiàn)在做 TensorFlow 和 TensorFlow 分布式的開(kāi)發(fā)以及使用機(jī)器學(xué)習(xí)來(lái)優(yōu)化 TensorFlow 的研究項(xiàng)目。

今天首先跟大家分享深度深入學(xué)習(xí)的例子,然后再跟大家簡(jiǎn)單介紹一下什么是 TensorFlow ,以及 TensorFlow 一些***特性,包括即將公開(kāi)甚至還沒(méi)有完成一些的特性,如果有時(shí)間的話,我會(huì)花一些篇幅著重介紹新的特性。***的時(shí)間我會(huì)簡(jiǎn)要介紹一下 Google Brain 兩個(gè)研究項(xiàng)目。

Machine Learning

今天,我們看到機(jī)器學(xué)習(xí)已經(jīng)改變了我們的世界,機(jī)器科學(xué)家用深度學(xué)習(xí)的方法來(lái)檢測(cè)糖尿病和視網(wǎng)膜病變,其中檢測(cè)視網(wǎng)膜病變達(dá)能到 95% 的準(zhǔn)確率,甚至超過(guò)眼科專(zhuān)家 91% 的準(zhǔn)確率。機(jī)器學(xué)習(xí)實(shí)現(xiàn)了機(jī)器和人類(lèi)專(zhuān)家相媲美的準(zhǔn)確率。

 

 

同時(shí)機(jī)器學(xué)習(xí)也可以用在自動(dòng)駕駛方向,可以讓交通更加安全和高效。

[[208626]] 

其次,機(jī)器學(xué)習(xí)能夠跨越語(yǔ)言的障礙,實(shí)現(xiàn)更加便捷的溝通和交流,我們知道傳統(tǒng)的機(jī)器翻譯系統(tǒng)需要把不同語(yǔ)言詞組對(duì)應(yīng)起來(lái),通過(guò)一些復(fù)雜的甚至手寫(xiě)的規(guī)則,把一種語(yǔ)言轉(zhuǎn)換為一種語(yǔ)言,這種系統(tǒng)非常龐大且不利于維護(hù),而且準(zhǔn)確度不夠高,所以最近興起了一種基于神經(jīng)網(wǎng)絡(luò)的方法,我們將其用 TensorFlow 實(shí)現(xiàn)出來(lái),用這種方法來(lái)縮小機(jī)器和人類(lèi)翻譯的差距,能夠使翻譯更加準(zhǔn)確和自然。 

 

同樣的,機(jī)器學(xué)習(xí)還可以給人類(lèi)帶來(lái)愉悅,可以實(shí)現(xiàn)自動(dòng)修改照片、突出人物的前景、背景虛化等功能,我們很快可以在手機(jī)上看到這個(gè)功能。

 

接下來(lái)看看機(jī)器學(xué)習(xí)在工業(yè)界的應(yīng)用,***個(gè)例子是 INSTACART ,它是做雜貨當(dāng)天送貨服務(wù)的,顧客通過(guò)網(wǎng)絡(luò)應(yīng)用程序從當(dāng)?shù)卦S多零售商選出想要的商品并且購(gòu)買(mǎi)雜貨。這個(gè)軟件的客戶(hù)非常多??蛻?hù)在購(gòu)買(mǎi)時(shí)面臨一個(gè)問(wèn)題,就是從數(shù)百萬(wàn)計(jì)零售商店或者商品中選出自己想要的物品,所以 INSTACART 為了讓購(gòu)物者更快地找出想要的商品,用 TensorFlow 建立了一套深度學(xué)習(xí)模型用來(lái)最有效地排序商品列表,這種方法能大大省下購(gòu)物者尋找商品的時(shí)間。

 

第二個(gè)例子就是 UBER ,UBER 用 TensorFlow 和基于 TensorFlow 的開(kāi)源項(xiàng)目來(lái)構(gòu)建一個(gè)叫做“米開(kāi)朗基羅”的系統(tǒng),這是一個(gè)內(nèi)部使用的機(jī)器學(xué)習(xí)平臺(tái),谷歌希望利用這個(gè)平臺(tái)讓內(nèi)部使用 AI 就像他們請(qǐng)求乘車(chē)一樣的方便。這個(gè)系統(tǒng)涵蓋了從數(shù)據(jù)管理、數(shù)據(jù)獲取和模型訓(xùn)練、評(píng)估、部署等方面,而且這個(gè)系統(tǒng)不但支持 TensorFlow 深度學(xué)習(xí),還支持其他機(jī)器學(xué)習(xí)的模型。

第三個(gè)例子是 KEWPIE ,它用 TensorFlow 搭建了人工智能系統(tǒng)用來(lái)改善嬰兒食品的質(zhì)量,對(duì)食物產(chǎn)品進(jìn)行人工智能分析,這樣可以識(shí)別出產(chǎn)品中可以接受的成分并且剔除產(chǎn)品中不能接受的成分,這樣保證了嬰兒食品的質(zhì)量。

[[208628]] 

What Is TensorFlow 

而實(shí)現(xiàn)上述這一切所有的基礎(chǔ)框架就是 TensorFlow.

我們?cè)?2015 年末開(kāi)源了 TensorFlow ,希望把它做成能夠服務(wù)所有人的機(jī)器學(xué)習(xí)平臺(tái)。我們想要將它做成一個(gè)快速靈活的、生產(chǎn)環(huán)境就緒的框架。它可以很方便可以做研究,也可以很快部署到生產(chǎn)環(huán)境當(dāng)中。TensorFlow 本質(zhì)上是一個(gè)大規(guī)模的運(yùn)算框架,它的運(yùn)算被抽象成一張運(yùn)算矢量圖。就像在這邊看到一張運(yùn)算圖一樣,上面的節(jié)點(diǎn)代表運(yùn)算或者狀態(tài)。當(dāng)我們完成了一些運(yùn)算或者結(jié)束了一些狀態(tài)的時(shí)候,我們的數(shù)據(jù)就從一個(gè)節(jié)點(diǎn)流到另外一個(gè)節(jié)點(diǎn)。這個(gè)圖可以用任何語(yǔ)言來(lái)構(gòu)建,當(dāng)這張圖構(gòu)建完之后,我們把它傳到 TensorFlow 核心當(dāng)中進(jìn)行編譯,進(jìn)行優(yōu)化然后來(lái)執(zhí)行。

 

TensorFlow 也支持很多硬件平臺(tái),從最初的 CPU、GPU ,到即將發(fā)布 CLOUD CPU ,還有對(duì)安卓、 iOS 的支持,甚至對(duì)嵌入式設(shè)備的支持。

 

我們將 TensorFlow 開(kāi)源到 Github 上面后,過(guò)去兩年興起了許多圍繞 TensorFlow 活躍的開(kāi)源社區(qū),現(xiàn)在我們有 67,000 多個(gè) star ,有 17,000 多個(gè) Github 項(xiàng)目名字當(dāng)中包括 TensorFlow. TensorFlow 不斷出現(xiàn)在各種大學(xué)課程和在線課程里面,很多大學(xué)也正在開(kāi)發(fā)基于 TensorFlow 的課程,除此之外我們也發(fā)布了 TensorFlow 中文網(wǎng)站,大家把它可以當(dāng)做入門(mén) TensorFlow 的初級(jí)教程,叫做 https://tensorflow.google.cn.

New Feature of TensorFlow

現(xiàn)在我們看一下 TensorFlow 的***特性。首先是 Eager Execution ,Eager Execution 是一種新的編程模式,我在之前一張幻燈片中展示了一個(gè)基于 TensorFlow 的靜態(tài)圖。 

 

Eager Execution 解決了靜態(tài)圖中一些問(wèn)題,解決了什么問(wèn)題呢?首先它可以少寫(xiě)很多代碼,就像上圖一樣。其次,通過(guò) Eager Execution 寫(xiě)代碼可以立刻發(fā)現(xiàn)它的錯(cuò)誤,相對(duì)之前來(lái)說(shuō)可以大大提高編寫(xiě)代碼查錯(cuò)的效率。第三是可以用 Tensor 來(lái)編寫(xiě)控制流,就不需要用 TF 來(lái)做循環(huán)甚至做判斷。最重要一點(diǎn)是如果用其他語(yǔ)言編寫(xiě)這張圖的話,再把這圖傳到 TensorFlow 核心中相當(dāng)于編寫(xiě)了另外一種代碼??吹竭@個(gè)幻燈片就是簡(jiǎn)單的例子,充分說(shuō)了 Eager Execution 的簡(jiǎn)單之處。

今年的 Google I/O 大會(huì)宣布了第二代 TPU,我們第二代 TPU 既可以做推理也可以作訓(xùn)練。一個(gè) TPU 可以實(shí)現(xiàn)很高的詞典運(yùn)算。我們甚至可以把很多代 TPU 聯(lián)合起來(lái)成為一個(gè)就像超級(jí)計(jì)算機(jī)一樣的計(jì)算核心。在第二代 TPU 的幫助下,我們可以在 20 小時(shí)內(nèi)全部訓(xùn)練出 RESNET-50 的模型,以前如果只做一個(gè) TPU 的訓(xùn)練,可能要花一周的時(shí)間來(lái)訓(xùn)練這個(gè)模型。今天第二代 TPU 即將發(fā)布到 Google Cloud,并且推出供大家使用。

 

下面講一下 TensorFlow 上層 API,除了神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度,大家還關(guān)注如何更加方便實(shí)現(xiàn)用 TensorFlow 上層 API 來(lái)創(chuàng)建神經(jīng)網(wǎng)絡(luò)。Keras 是其中一個(gè) API ,它支持很多的后端。相信很多觀眾都用過(guò) Keras ,從本質(zhì)上來(lái)講 Keras 更加像一種 API 開(kāi)發(fā)規(guī)范。TensorFlow 有一個(gè) TF 就是 Keras ,但是它只是 API 規(guī)范實(shí)現(xiàn)的一種方式,使用的是一個(gè)自定義 TensorFlow 后端,有了這個(gè)后端,我們可以讓 Keras 與 Estimators 或者 Secving 整合起來(lái),這樣會(huì)對(duì)分布式提供更好的支持。

 

還有一個(gè)在 TensorFlow 里面介紹的概念,叫做 Estimators ,這是一個(gè)比較輕量化,并且在谷歌內(nèi)部生產(chǎn)環(huán)境中廣泛使用的 API ,其中 Estimators 提供了很多模型供大家使用,叫做 Canned Estimator ,他們的關(guān)系是這樣的:Estimators 和 tf.keras 上層封裝了一個(gè) Canned Estimator ,可以用其來(lái)封裝成各種模型。

   

 

如果你們習(xí)慣于 Keras 的接口的話,我們提供了一個(gè)上層 API 轉(zhuǎn)換的工具 ,叫做 model_to_estimator ,一旦你有一個(gè)編譯好的 Keras 模型就可以調(diào)用這個(gè) model_to_estimator 來(lái)獲取一個(gè) Estimator,從而將 Keras 轉(zhuǎn)換成了 Estimator。 

 

Estimator 還提供了分布式訓(xùn)練的接口,如果你用 TensorFlow 來(lái)做分布式訓(xùn)練的話,你就可能熟悉我們的分布式模式。我們的 Estimator 很好地提供了對(duì)分布式訓(xùn)練的支持,只要寫(xiě)一份單機(jī)的代碼,它就可以幫你構(gòu)建好在不同機(jī)器上的執(zhí)行的程序,訓(xùn)練的程序只要調(diào)用 Estimator.train 就能完成這一執(zhí)行過(guò)程,只要調(diào)用它的 Estimator.evaluate ,整個(gè)集群就可以開(kāi)始訓(xùn)練了。 

 

 

大家可以看一下這些 API 的文檔:TF, KERAS, TFLAYERS 等等,我們還發(fā)布了一個(gè)改進(jìn)過(guò)的程序員指南在官網(wǎng)上,希望大家去看一下。

 

下一個(gè)特性是 TensorFlow Lite ,TensorFlow Lite 是跑在移動(dòng)設(shè)備上的 TensorFlow 的一個(gè)子集。現(xiàn)在移動(dòng)設(shè)備無(wú)處不在,并且越來(lái)越重要。在移動(dòng)設(shè)備上,我們可以在野外判斷這個(gè)狗是什么品種或者判斷這個(gè)植物有沒(méi)有病害,利用人工智能都可以在移動(dòng)設(shè)備做一些應(yīng)用,所以我們推出了 TensorFlow Lite.

為什么很多時(shí)候要在移動(dòng)設(shè)備上做?除了剛才說(shuō)的那些應(yīng)用場(chǎng)景,為什么要做移動(dòng)設(shè)備的推理?這是因?yàn)槲覀儠r(shí)常需要在一些特殊環(huán)境下做一系列的推理,很多時(shí)候,尤其在野外,我們的網(wǎng)絡(luò)帶寬非常的低,網(wǎng)絡(luò)延遲非常大。如果每次推理都向遠(yuǎn)程服務(wù)器發(fā)送請(qǐng)求,那對(duì)移動(dòng)設(shè)備的電池能力要求很高。雖然現(xiàn)在市面上對(duì)移動(dòng)設(shè)備能夠完成推理有迫切的需求,但是其中存在很多的挑戰(zhàn),最主要的挑戰(zhàn)是因?yàn)橐苿?dòng)設(shè)備的內(nèi)存、計(jì)算資源以及帶寬等等受到了限制。從編程角度來(lái)講,因?yàn)槠脚_(tái)抑制性很高,開(kāi)發(fā)越來(lái)越復(fù)雜,比如說(shuō)在安卓上,我們可以使用 CPU 或者指令等方式編寫(xiě)底層代碼,在 IOS 上又有自己一些平臺(tái)和工具,這種不同平臺(tái)的工具讓我們的硬件以及 API 的開(kāi)發(fā),甚至存在不同的 API 讓我們的開(kāi)發(fā)變得更復(fù)雜,所以我們?cè)O(shè)計(jì)了 TensorFlow Lite. 

 

相比 TensorFlow Lite 的話, TensorFlow 主要關(guān)注一些大型的設(shè)備。TensorFlow Lite 讓小型的設(shè)備應(yīng)用更加效率,現(xiàn)在我們通過(guò)一個(gè)小的例子看 TensorFlow Lite 如何工作的。 

 

這個(gè)是 TensorFlow Lite 生命周期,首先我們以標(biāo)準(zhǔn)方式來(lái)運(yùn)行 TensorFlow,運(yùn)行結(jié)束之后,我們得到 Graphdef 和 Checkpoint,我們通過(guò) TensorFlow Lite 提供一個(gè)轉(zhuǎn)換器,把它轉(zhuǎn)換成 TensorFlow Lite 的模型格式。有了這個(gè) TensorFlow Lite 格式的模型之后,我們就可以把它轉(zhuǎn)移到移動(dòng)設(shè)備當(dāng)中。接入 TensorFlow Lite 顯示器就能夠在移動(dòng)設(shè)備加載這個(gè)模型。如果我們的顯示器直接調(diào)度 NeonKerels ,如果是在其他設(shè)備上,還可以利用硬件加速器接口來(lái)定義自己對(duì)自己硬件的一些優(yōu)化。

下一個(gè)特性就是 Input Pipeline ,不管是初學(xué)者還是專(zhuān)家都會(huì)對(duì) Input Pipeline 感興趣,因?yàn)?Input Pipeline 使用起來(lái)非常痛苦。

 

 

它主要有兩種模式,一種是 Feeding,它優(yōu)點(diǎn)是可以用 python 靈活處理零距,但是性能很差。而且單線程跑,每一步訓(xùn)練都要等待數(shù)據(jù)處理的完成,這個(gè)對(duì) GPU 來(lái)說(shuō)效率非常低。另外一種方式效率高一點(diǎn),就是把數(shù)據(jù)處理變成一系列的操作,這使用一個(gè) Queues 作為數(shù)據(jù)存放的臨時(shí)空間,我們把預(yù)處理好的數(shù)據(jù)和一些中間預(yù)處理數(shù)據(jù)放在 Queues 里面,通過(guò) python 來(lái)控制 Queues 的輸入和控制。但是有一個(gè)問(wèn)題,這個(gè) python 有一個(gè)權(quán)值解釋器的鎖,所以它讓這個(gè) Queues 輸入性能受到很大的限制。 

 

還有一個(gè)問(wèn)題就是,我們寫(xiě)的數(shù)據(jù)處理模塊沒(méi)有辦法得到常用,也沒(méi)有辦法在訓(xùn)練的時(shí)候更改輸入數(shù)據(jù)。所以我們了開(kāi)發(fā)了一套 Input Pipeline,因?yàn)榉N種原因,所以把它設(shè)計(jì)成惰性的列表。因?yàn)槲覀兊臄?shù)據(jù)很多長(zhǎng)得類(lèi)似,而且數(shù)據(jù)量可以比較大,所以可以把它定義成 LAZY,我們把它定義成惰性列表之后,可以很自然用函數(shù)編程語(yǔ)言中的 map 和 filter 來(lái)定義預(yù)處理管道,我們?cè)诤芏嗾Z(yǔ)言當(dāng)中都可以看到 map 和 filter 的操作?,F(xiàn)在我們看一下它的接口,我們還有第二個(gè)接口叫做 Iterator,可以方便把 edements 數(shù)據(jù)取出來(lái)。就像很多一般的編程語(yǔ)言里面的 Iterator 一樣,我們可以對(duì)這個(gè) Iterator 配置不同的數(shù)據(jù),PPT 上這就是一個(gè)例子,大家可以看一下。 

Learn To Learn 

在神經(jīng)網(wǎng)絡(luò)解決問(wèn)題的時(shí)候,神經(jīng)網(wǎng)絡(luò)也會(huì)給我們帶來(lái)一些新的問(wèn)題,就是我們?cè)O(shè)計(jì)神經(jīng)網(wǎng)絡(luò)架構(gòu)需要投入大量的專(zhuān)業(yè)知識(shí)和時(shí)間投資,比如這個(gè)就是谷歌圖象分類(lèi)的一個(gè) .NET 的架構(gòu),這個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)從最初的卷積的架構(gòu)到現(xiàn)在復(fù)雜的架構(gòu),經(jīng)過(guò)研究人員多年的實(shí)驗(yàn)不斷重復(fù)、完善,才得以達(dá)到這么復(fù)雜的模型。

 

我們與其讓科研人員不斷在電腦面前,為什么不用強(qiáng)大計(jì)算資源,讓機(jī)器自動(dòng)尋找好的神經(jīng)網(wǎng)絡(luò)架構(gòu)?在谷歌我們用一種方法,就是用 RNN 循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)生成一個(gè)子網(wǎng)絡(luò),這個(gè)想法的來(lái)源是因?yàn)槲覀兛梢园岩粋€(gè)神經(jīng)網(wǎng)絡(luò)對(duì)應(yīng)成一個(gè)訓(xùn)練化的一個(gè)個(gè)序列,RNN 非常擅長(zhǎng)解決這類(lèi)問(wèn)題,所以我們用 RNN 來(lái)生成一個(gè)子網(wǎng)絡(luò),我們把這個(gè)子網(wǎng)絡(luò)用真實(shí)數(shù)據(jù)進(jìn)行訓(xùn)練。通過(guò)訓(xùn)練準(zhǔn)確度的好壞來(lái)更新 RNN 的控制器。在它下一次迭代當(dāng)中,RNN 就會(huì)輸出更高精度的子網(wǎng)絡(luò)。這是 RNN 轉(zhuǎn)接架構(gòu)的例子,這個(gè)例子看上去錯(cuò)綜復(fù)雜,其實(shí)也不難理解。

 

我們也嘗試用同樣的方法來(lái)生成優(yōu)化函數(shù),然后把生成的優(yōu)化函數(shù)和常用的函數(shù)來(lái)進(jìn)行對(duì)比,從這張表可以看到生成的函數(shù)超過(guò)了現(xiàn)有函數(shù)的精度,但是這些生成的函數(shù)非常的不直觀,所以我們就開(kāi)始想,有沒(méi)有更加直觀的方法來(lái)處理 learn 2 learn 這個(gè)問(wèn)題,于是我們想到了進(jìn)化的算法,或者說(shuō)遺傳算法。既然一個(gè)簡(jiǎn)單單細(xì)胞生物都可以進(jìn)化到非常復(fù)雜的、有獨(dú)立思考多細(xì)胞生物,那么我們可以不可以把同樣理論用到模型的構(gòu)建上來(lái),于是我們就設(shè)計(jì)了這樣一種算法,在每個(gè)時(shí)間的開(kāi)始,我們建立了含有一千個(gè)訓(xùn)練好模型的種群,每一步進(jìn)化從一千個(gè)模型中隨機(jī)選兩個(gè),比較他們的準(zhǔn)確率,準(zhǔn)確率低的模型就會(huì)被扔掉,準(zhǔn)確率高的模型會(huì)留下來(lái),而且模型會(huì)繁殖,他們繁殖的方式就是給模型創(chuàng)建一個(gè)副本,并且簡(jiǎn)單修改這個(gè)模型,看上去像基因變異一樣,我們會(huì)訓(xùn)練這個(gè)變異的副本然后放在種群當(dāng)中。

 

 

這個(gè)是分布式訓(xùn)練的細(xì)節(jié)。模型變異有很多種,我們剛才提到結(jié)構(gòu)的一些變化,甚至也有一些會(huì)保持不變,但是我們會(huì)對(duì)它多訓(xùn)練一下,或者重新訓(xùn)練一下,因?yàn)槌跏蓟儺惙浅V匾?。變異化的選擇是均勻分布概率的模型。

我們看一下進(jìn)化時(shí)間的***進(jìn)展,圖中橫軸代表的是時(shí)間,縱軸是準(zhǔn)確率,里面每個(gè)點(diǎn)代表種群當(dāng)中一個(gè)模型,灰色點(diǎn)是被淘汰的模型。右上方藍(lán)色的點(diǎn)是存活下來(lái)的模型,訓(xùn)練三天之后就在這個(gè)位置。訓(xùn)練三天之后就可以得到一個(gè)比較高的準(zhǔn)確率。在訓(xùn)練十天之后,可以看到準(zhǔn)確度達(dá)到停止期,也就是我們找到了個(gè)比較理想的模型。

Device Placement

我們看一下另外一個(gè)研究項(xiàng)目叫做 Device placement ,他是用強(qiáng)化學(xué)習(xí)的方法來(lái)做 Device Placement ,當(dāng)前機(jī)器學(xué)習(xí)使用了非常多的模型,也使用非常多的數(shù)據(jù),這個(gè)要求我們必須有很多的設(shè)備共同訓(xùn)練這個(gè)模型。

 

比如說(shuō)看到這個(gè)翻譯的模型就非常大。我們通常使用 128 個(gè) GPU 來(lái)訓(xùn)練,我們先簡(jiǎn)單介紹一下 Device placement ,Device placement 就是把計(jì)算和設(shè)備對(duì)應(yīng)起來(lái),目前我們都是用一些人工的方法,甚至簡(jiǎn)單的算法。我們?cè)O(shè)置算法需要我們對(duì)設(shè)備有充分的了解,而且對(duì)模型有充分的了解,這個(gè)算法并不是簡(jiǎn)單從一個(gè)模型推廣到另外一個(gè)模型。但是目前非常時(shí)髦的做法,都是將基于這些規(guī)則的系統(tǒng)轉(zhuǎn)化為,變成基于機(jī)器學(xué)習(xí)的系統(tǒng),所以我們也用了類(lèi)似的方法。我們用強(qiáng)化學(xué)習(xí)的方法來(lái)解決這個(gè) Device placement 的模型,我們受 learn 2 learn 方法的啟發(fā)來(lái)創(chuàng)建一個(gè)類(lèi)似的模型。

我們有一個(gè)網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)以神經(jīng)網(wǎng)絡(luò)作為輸入,同時(shí)告訴一個(gè)網(wǎng)絡(luò)有多少計(jì)算資源,這個(gè)網(wǎng)絡(luò)就會(huì)告訴我們 Neural Model ,我們跑一下這個(gè)放置好的 Neural Model ,根據(jù)運(yùn)行的時(shí)間來(lái)調(diào)整一下神經(jīng)網(wǎng)絡(luò),我們用類(lèi)似的機(jī)器翻譯的架構(gòu)。因?yàn)槟P捅容^大,比較慢,我們采用了數(shù)據(jù)并行方式來(lái)做訓(xùn)練。

 

 

 

之后我們看一下訓(xùn)練出來(lái)的結(jié)果,這是在一個(gè)神經(jīng)翻譯系統(tǒng) Device placement 的結(jié)果,上面白色的點(diǎn)代表是在 CPU ,在 CPU 運(yùn)行的節(jié)點(diǎn),下面彩色點(diǎn)代表在不同 GPU 運(yùn)行的節(jié)點(diǎn),盡管取得了 20% 左右的提高,但是還是非常不利于理解?,F(xiàn)階段這個(gè)在輸入端采用了 CPU ,到后面都是采用了 GPU 。

 

大數(shù)據(jù) 

***兩張圖表示我們?cè)谏窠?jīng)翻譯系統(tǒng)上,每個(gè) GPU 運(yùn)算非常平衡,而右邊人類(lèi)專(zhuān)家設(shè)計(jì)的運(yùn)算非常不平衡,在 GPU2 花了非常長(zhǎng)的時(shí)間,在其他 GPU 花了很少的時(shí)間,但是這個(gè)也是可以理解,因?yàn)閷?zhuān)家設(shè)計(jì)一般只考慮到一部分。在 Inception V3 我們的結(jié)果不是非常平衡。但是可能是因?yàn)?Inception V3 當(dāng)中有一些過(guò)分的依賴(lài),我們的結(jié)果仍然在 Inception V3 有總體的運(yùn)行時(shí)間上的提高。后來(lái)我們做一些分析發(fā)現(xiàn)因?yàn)樵跀?shù)據(jù)拷貝期間,我們花了更少的時(shí)間。所以總體對(duì)它有一個(gè)運(yùn)行時(shí)間的提高。

The End

我們講了兩個(gè)例子,我們探索如何用算法或者機(jī)器學(xué)習(xí)來(lái)優(yōu)化機(jī)器學(xué)習(xí)的模型,并且取得了一定的進(jìn)展,我們相信在不久的將來(lái),如果有更好的計(jì)算資源,以后的所有架構(gòu)將是由電腦的生成,谷歌已經(jīng)給大家走出了探索的***步,希望大家都可以參與其中,我講到這里,謝謝大家! 

責(zé)任編輯:龐桂玉 來(lái)源: 36大數(shù)據(jù)
相關(guān)推薦

2018-04-11 17:50:14

深度學(xué)習(xí)PyTorchTensorFlow

2009-02-11 13:15:54

軟件工程師女工程師google

2010-01-26 10:00:30

Google工程師Web

2009-03-04 09:17:47

GoogleChrome工程師

2017-08-16 10:57:52

深度學(xué)習(xí)TensorFlowNLP

2017-06-04 23:39:16

TiKVC++Rust

2011-04-25 09:34:52

PythoncGO

2021-03-26 09:11:23

技術(shù)研發(fā)工程師

2012-05-31 02:43:40

Google薪酬職位

2010-11-22 10:37:31

Google跳槽

2009-10-30 09:36:10

GoogleLinux操作系統(tǒng)

2010-11-29 09:46:35

Dalvik系統(tǒng)架構(gòu)Android

2009-03-23 13:50:10

工程師規(guī)劃職場(chǎng)

2013-10-25 11:19:18

Google大數(shù)據(jù)Sanjay Ghem

2010-09-13 17:38:47

Google的系統(tǒng)工程

2013-05-22 11:17:52

GoogleAndroid碎片化

2010-01-21 08:56:13

2015-05-21 10:43:36

工程師如何寫(xiě)代碼

2011-09-16 09:23:41

軟件項(xiàng)目

2013-08-19 09:31:16

Google工程師
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)