深度學(xué)習(xí)進(jìn)階筆記之_第1頁
深度學(xué)習(xí)進(jìn)階筆記之_第2頁
深度學(xué)習(xí)進(jìn)階筆記之_第3頁
深度學(xué)習(xí)進(jìn)階筆記之_第4頁
深度學(xué)習(xí)進(jìn)階筆記之_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

深度學(xué)習(xí)進(jìn)階筆記之十|那些TensorFlow上好玩的黑科技

引言

TensorFlow是Google基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),被廣泛用于

語音識別或圖像識別等多項機(jī)器深度學(xué)習(xí)領(lǐng)域。其命名來源于本身的運(yùn)行原理。Tensor(張

量)意味著N維數(shù)組,F(xiàn)low(流)意味著基于數(shù)據(jù)流圖的計算,TensorFlow代表著張量

從圖象的一端流動到另一端計算過程,是將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分

析和處理的過程。

TensorFlow完全開源,任何人都可以使用??稍谛〉揭徊恐悄苁謾C(jī)、大到數(shù)千臺數(shù)據(jù)中心

服務(wù)器的各種設(shè)備上運(yùn)行。

『機(jī)器學(xué)習(xí)進(jìn)階筆記』系列將深入解析TensorFlow系統(tǒng)的技術(shù)實踐,從零開始,由淺入深,

與大家一起走上機(jī)器學(xué)習(xí)的進(jìn)階之路。

本文屬于介紹性文章,其中會介紹許多TensorFlow的新feature和summit上介紹的一些

有意思的案例,文章比較長,可能會花費(fèi)30分鐘到一個小時

Google于2017年2月16日(北京時間)凌晨2點在美國加利福尼亞州山景城舉辦了首

屆TensorFlow開發(fā)者峰會。Google現(xiàn)場宣布全球先進(jìn)的深度學(xué)習(xí)開源框架TensorFlow

正式對外發(fā)布V1.0版本,并保證Google的本次發(fā)布版本的API接口滿足生產(chǎn)環(huán)境穩(wěn)定性

要求。

TensorFlow在2015年年底一出現(xiàn)就受到了極大的關(guān)注,經(jīng)過一年多的發(fā)展,已經(jīng)成為

了在機(jī)器學(xué)習(xí)、深度學(xué)習(xí)項目中非常受歡迎的框架之一。自發(fā)布以來,TensorFlow不斷在

完善并增加新功能,直到在這次大會上發(fā)布了穩(wěn)定版本的這次是谷歌

TensorFlowV1.0o

第一次舉辦的TensorFlow開發(fā)者和爰好者大會,我們從主題演講、有趣應(yīng)用、技術(shù)生態(tài)、

移動端和嵌入式應(yīng)用多方面總結(jié)這次大會上的內(nèi)容,希望能對TensorFlow開發(fā)者有所幫

助。

TensorFlow:為大眾準(zhǔn)備的機(jī)器學(xué)習(xí)框架

TensorFlow在過去獲得成績主要有以下幾點:

TensorFlow被應(yīng)用在Google很多的應(yīng)用包括:Gmail,GooglePlay

Recommendation,Search,Translate,Map等等;

在醫(yī)療方面,TensorFlow被科學(xué)家用來搭建根據(jù)視網(wǎng)膜來預(yù)防糖尿病致盲(后面也

提至IJStanford的PHD使用TensorFlow來預(yù)測皮膚癌,相關(guān)工作上了Nature封面);

通過在音樂、繪畫這塊的領(lǐng)域使用TensorFlow構(gòu)建深度學(xué)習(xí)模型來幫助人類更好地

理解藝術(shù);

使用TensorFlow框架和高科技設(shè)備,構(gòu)建自動化的海洋生物檢測系統(tǒng),用來幫助科

學(xué)家了解海洋生物的情況;

TensorFlow在移動客戶端發(fā)力,有多款在移動設(shè)備上使用TensorFlow做翻譯、風(fēng)

格化等工作;

TensorFlow在移動設(shè)備CPU(高通820)上,能夠達(dá)到更高的性能和更低的功耗;

TensorFlowecosystem結(jié)合其他開源項目能夠快速地搭建高性能的生產(chǎn)環(huán)境;

TensorBoardEmbeddedvector可視化工作

能夠幫助PHD/科研工作者快速開展project研究工作。

Google第一代分布式機(jī)器學(xué)習(xí)框架DistBelief不再滿足Google內(nèi)部的需求,Google的

小伙伴們在DistBelief基礎(chǔ)上做了重新設(shè)計,引入各種計算設(shè)備的支持包括

CPU/GPU/TPU,以及能夠很好地運(yùn)行在移動端,如安卓設(shè)備、ios、樹莓派等等,支持多

種不同的語言因為各種high-level的api訓(xùn)練僅支持Pythoninference支持包括C++,

Go,Java等等),另外包括像TensorBoard這類很棒的工具,能夠有效地提高深度學(xué)習(xí)

研究工作者的效率。

TensorFlow在Google內(nèi)部項目應(yīng)用的增長也十分迅速在Google多個產(chǎn)品都有應(yīng)用如:

Gmail,GooglePlayRecommendation,Search,Translate,Map等等;有彳各近

100多project和paper使用TensorFlow做相關(guān)工作

#ofGoogledirectoriescontainingmodeldescriptionfiles

Productionuseinmanyareas:

Search

M

MGmail

O

PTranslate

M

PMaps

UAndrotd

2

OPhotos

5o.Speech

n

bYouTube

.

3Play

_manyothers...

Researchusefor

100sofprojectsandpapers

TensorFlow在過去14個月的開源的時間內(nèi)也獲得了很多的成績,包括475+非Google

的Contributors,14000+次commit,超過5500標(biāo)題中出現(xiàn)過TensorFlow的github

project以及在StackOverflow上有包括5000+個已被回答的問題,平均每周80+的

issue提交。

過去1年,TensorFlow從剛開始的0.5,差不多一個半月一個版本:

Progresssincelaunch

v0.5v0.7V09v0.11

InitialTensorFlowiOS;MacGPUHDFS;CUDA8,

ReleaseServingCuDNN5

Nov'15DecHSFeb'16Apc'16Jun*16Aug*16Oct16Nov,16

V06V08VOWv0.12

FasteronGPUs;DistributedStenWmdows7,10.

Python3.3>T<ntorFlowandServer2016;

TensocBoard

Embedding

Visualizef

https〃athub(

TensorFlow1.0的發(fā)布

TensorFlowl.O也發(fā)布了,雖然改了好多api,但是也提供了tf_upgrade.py來對你的代碼

進(jìn)行更新。TensorFlow1.0在分布式訓(xùn)練inception-v3模型上,64張GPU可以達(dá)到58X

的加速比,更靈活的高層抽象接口,以及更穩(wěn)定的APL

NewHighLevelAPI

對于新的抽象接口,TensorFlow相對于其他DeepLearningFrameWork做的比較好,

layers能讓人很容易build一個model,基于layer之上的包括TF.Learn里面仿照

scikit-learn風(fēng)格的各種estimator設(shè)計以及之后將融入TensorFlow官方支持的Keras,

能夠讓小伙伴用幾行配置模型結(jié)構(gòu)、運(yùn)行方式、模型輸出等等;在這層之上就有canned

Estimator,所謂的modelinbox,比如Ir,kmeans這類。

Modelsinabox

一Trainandevaluate

-----------------models

Buildmodels

Layers

BroadMLSupport

在TensorFlow中有一些高興的機(jī)器學(xué)習(xí)的算法實現(xiàn),如LR,SVM、RandomForest,

在TF.Learn中有很多常用的機(jī)器學(xué)習(xí)算法的實現(xiàn),用戶可以很快的使用,而且API風(fēng)格和

scikit-learn很類似,而且在后續(xù)的video提到會有分布式的支持。

XLA:AnExperimentalTensorFlowCompiler

TensorFlowXLA能夠快速地將TensorFlow轉(zhuǎn)成比較底層的實現(xiàn)(依賴device),這里

后面有個talk,詳細(xì)講述了XLA。

XLA:AnExperimentalTensorFlowCompiler

TFgraphs90

V*WvwvvU(%rdx)tXrax

AAA/WVAA3

PMVvvUwvJvaovaps(%rax)tXXHBO

0x90000007wilpsXianO,XXMS.Xxaa*

v?ovapsiKflae.(Vdi)

廣泛的合作

IncludedinIBM'sPowerAI

Supportmovidusmyriad2accelerator

Qualcomm,sHexagonDSP(8倍加速,這里還請了Qualcomm的產(chǎn)品負(fù)責(zé)人來

站臺)

TensorFlowInDepth

TensorFlow在research和production上有很好的優(yōu)勢,如下圖:

Performancematters

Research

?Iteratequickly

?Trainmodelsfaster

?Runmoreexperimentsinparallel

Production

?Serverfarmsandembedded

?CPUs,GPUs,TPUs,andmore

?Low-latencyserving

在模型訓(xùn)練上,1機(jī)8卡的性能無論是在一些標(biāo)準(zhǔn)的基準(zhǔn)測試或者是真實數(shù)據(jù)上都有比較好

的加速比:

TensorFlowPerformance++

Inception-v3Training-SyntheticData

DGX-1:7.37xspeedupat8GPUsK80:7.5xspeedupat8GPUs

*nc?pllofw3IrMrangonP1Q0GPU*inc?<MorMr3IrwwiQonKMGPU*

當(dāng)然在多機(jī)分布式訓(xùn)練上,能夠達(dá)到64張GPU上58倍的加速比:

TensorFlowPerformance++

Inception-v3DistributedTraining-SyntheticData

58xspeedupat64GPUs(8Servers/8GPUseach)

TensorFlow被一些頂尖的學(xué)術(shù)研究項目使用:

NeuralMachineTranslation

NeuralArchitectureSearch

ShowandTell

當(dāng)然TensorFlow在生產(chǎn)上也被廣泛應(yīng)用:

ServemodelsinproductionwithTensorFlowServing

ContinuousTraningPipelineServing

如MobileGoogleTranslate,Gmail等等也被國內(nèi)外很多大廠使用做為模型訓(xùn)練的工具。

合airbnb?ATOUS

OCFtMCCABWCtARMCEVA

CISTQDeepMind9Dropboxebay

?(intel)

GocgleIBMPowerSystems▼JD.COM京東

Movidius^

QUALCO/WVK口i

o

這些都是JeffDean在Keynote的內(nèi)容講到的內(nèi)容內(nèi)容有點多而且個人感覺這群google

的小伙伴的ppt做的有點任性,不過誰叫他們牛逼呢,接下來幾個talk比較有技術(shù)含量,

相信各位會更加有興趣。

有趣的應(yīng)用案例

皮膚癌圖像分類

皮膚癌在全世界范圍內(nèi)影響深遠(yuǎn),患病人數(shù)眾多,嚴(yán)重威脅身體機(jī)能。所幸醫(yī)療機(jī)構(gòu)統(tǒng)計皮

膚癌在早期的治愈率是98%,更值得慶幸的是在這樣一個時代,智能終端能夠在早期及時

發(fā)現(xiàn),及早預(yù)防(到2020,預(yù)計全球有61億臺智能手機(jī))。

Goodnews

?Survivalrateformelanomais98%ifdetectedearly

?By2020,therewillbe6.1billionsmartphonesincirculation

globally

這位小哥做的工作是啥呢,他拿到了一批皮膚癌的數(shù)據(jù),然后使用一個pretrained的

inception-v3對數(shù)據(jù)來做finetuning,在手機(jī)上做inference:

TransferLearning

Withlnception-V3

生成結(jié)果:

Results

Metenoma:130IrrtMes

&

Sensitrvrty

使用Tensorflow在手機(jī)上很容易搭建,完成一個app用來做早起皮膚癌的檢測:

相關(guān)成果發(fā)表在Nature,而且在Nature的封面,這是一個特別成功地通過計算機(jī)視覺及

深度學(xué)習(xí)相關(guān)的技術(shù),利用廉價的移動設(shè)備,能夠很有效地檢測是否有皮膚癌,大大節(jié)省了

醫(yī)療檢測的成本,相信在未來會有更多相關(guān)的技術(shù)出現(xiàn)。

利用AI預(yù)測糖尿病,預(yù)防失明

這個talk講的前面也提到的通過視網(wǎng)膜圖像預(yù)測糖尿病,預(yù)防失明:

HowDRisDiagnosed:RetinalFunduslinages

x

Hemorrhages

HealthyDiseased

NoDRMildDRModerateDRSevereDRProhferatDR

Evenwhenavailable,ophthalmologistsareinconsistent

通過視網(wǎng)膜圖片預(yù)測糖尿病是一個困難的問題,即使是專業(yè)的醫(yī)生,也很難去判斷,但是深

度學(xué)習(xí)卻可以幫助我們:

Adaptdeepneuralnetworktoreadfundusimages

通過收集適量的醫(yī)療數(shù)據(jù),構(gòu)建一個26layers的深度卷積網(wǎng)絡(luò),我們可以讓網(wǎng)絡(luò)自動學(xué)習(xí)

這些圖像中的feature,來獲得較高的分類準(zhǔn)確率,而這個是人眼很難解決的。這里有一

個demo的演示:

ARDA:AutomatedRetinalDiseaseAssessment

..一,CNOOfCMAfif

/

模型的評估比專業(yè)醫(yī)生對比,F(xiàn)-score為0.95,比專業(yè)醫(yī)生的中位數(shù)0.91還高,這個太厲

害了,相信不久會看到深度學(xué)習(xí)在醫(yī)療,尤其是這種病癥圖像分析上有很多驚人的成果。

MM*I.1"IMMWanCWIMMKAlTXCAMOCUWIT*

DevelopmentandValidationofaDeepLearningAlgorithm

forDetectionofDiabeticRetinopathyF-score

inRetinalFundusPhotographs

0.950.91

ns9.963images

AUC991%r968.9931AlgorithmOphthalmologist

(median)

*ThestudybyGulshanand

colleaguestrulyrepresentsthe

bravenewworldinmedicine.*

"Googlejustpublishedthispaper

inJAMA(impactfactor37)(...)It

actuallylivesuptothehype."

02040eo80100

1-Speafbcity.%

Wide&DeepInGooglePlay

這項技術(shù)有段時間特別火,被用來做推薦相關(guān)的應(yīng)用,首先解釋下Memorization和

Generalization:

Wide&Deep

memorizationgeneralization

relevancediversity

模型的基本結(jié)構(gòu)如下:

整個推薦會同時考慮到商品的相關(guān)性以及一些推理關(guān)系,例如老鷹會飛、麻雀會飛這類邏輯

屬于而說帶翅膀的動物會飛這屬于

Memorization,Genralizationo

在具體的應(yīng)用場景,如GooglePlay的App推薦:

P(lnstall)

WideLinearGeneralizationcanbeachievedbyadding

Modelslessspecificfeatureslikeappcategory.

Thecrossbelowcanapplytoalltravelapps.

notjustPricelineorKayak

IHAVH

GeneralCrossedFeature

ANOCnstaM.cKeQory^trtvel

這里構(gòu)建一個如下圖的網(wǎng)絡(luò)來進(jìn)行訓(xùn)練(jointtraining):

P(lnstall)

DeepNeuralDeepmodelscangeneralizepredictionto

<userfimpression>thatneverorrarely

Networksco-occurredviadenseembeddings

Hiddenlayerscanlearncomplex,but

Hiddenlessinterpretablefeatureinteractions

Layers

Dense

Embeddings

DIUserFeatureImpressionFeature

I—Imstilled和hpncKne

為啥要jointtraining,而不是直接用deep和wide的來做ensemble呢?這里做這個給

出一個解釋,因為wide和deep會相互影響,結(jié)果精確度會高,并且model會比較小:

ExperimentResults

Table1:Offline&onlinemetricsofdifferentmodels.

OnlineAcquisitionGainisrelativetothecontrol.

ModelOfflineAUCOnlineAcquisitionGain

Wide(control)0.7260%

Deep0.722+2.9%

Wide&Deep0.728+3.9%

而上面提到的Wide&DeepLearningModel在Tensorflow下僅僅只需要10行代碼來

實現(xiàn)(突然想起了那個100美元畫一條線的故事):

TrainWide&Deepmodelsin10linesofcode

?Definewidenodelfeaturesandcrosses.

query=sparse.column.with.hash.txicket(,'query'?,num.buckets)

MM

dodd=sparse_column_with_bash-bucket(doc1drnumwbuckets)

query_x_docid=crossed.column([query,docid),nu?_buckets)

tridc.cols=[query.x,docid,..?]

nDefinedeepmodelfeaturesandenbeddings.

query_emb-enbedding.coluan(query,d*i?iens1on=32)

docid.emb=embedding.coluan(doc,1d,dimensions32)

dcep.cols=[query.emb,docid.eab,...]

9Definemodelstructureandstarttraining.querydoctd^ery.x.doctd

mONNL-inearComb-inedClassIfier(

w'ide.cols,d??p_co\s9dnn.hidden-unitssCSOO,2H8,160))

m.f1t(train_data,labels,...)

Magenta:音樂和藝術(shù)生成

這個項目講的是利用深度學(xué)習(xí)來做一些藝術(shù)相關(guān)的工作,項目地

址:tensorflow-magenta有一些很好玩的東西,如風(fēng)格化,生成藝術(shù)家風(fēng)格的音樂,利用

深度學(xué)習(xí)模型模擬人類對藝術(shù)的想象力,創(chuàng)造出屬于DeepLearning的藝術(shù)風(fēng)格。想要詳

細(xì)了解的可以看看這里的介紹welcome-to-magenta還有前面提到的github上project。

DeepMind團(tuán)隊所做的一些開發(fā)工作

DeepMind在被Google收購之后,也選擇TensorFlow作為其深度學(xué)習(xí)相關(guān)研究的平臺,

然后做了很多很有意思的東西:

DataCenterCooling

這是Google在全世界各地若干個數(shù)據(jù)中心之一:

Google的小伙伴利用強(qiáng)化學(xué)習(xí),是的!你沒有聽錯,應(yīng)用在AlphaGo上的一種技術(shù)來做

數(shù)據(jù)中心冷卻設(shè)備的自動控制,并且效果十分顯著:

Gorila

Gorial是DeepMind下的一個強(qiáng)化學(xué)習(xí)的框架,基于TensorFlow的高級API實現(xiàn),很穩(wěn)

定,只需要更改其中極少部分代碼就可以完成新的實驗,支持分布式訓(xùn)練,十分高效,并

且訓(xùn)練好的模型可以通過TensorFlowServing快速地部署到生產(chǎn)環(huán)境。

AlphaGo

這個相信不說,大家都知道的,第一次在圍棋上打敗人類,然后升級版的Master連續(xù)60

盤不敗,原理不說了,網(wǎng)絡(luò)上很多分析文章,貼兩張圖聊表敬意:

o-eud-e/CPJessavEOO.PU-EIdsp/Ksdllu

OD£d<?

?oex£1OQfstousaae^ui*CO0B&

?1ESJ?kE8o*isEJi8c?£X

Qasz8?sc?0OGwOCOPM^AJedns&B

BU'E一B

(俎)?

下7>

乞SvaSv

—、£?,

S?3/

l

國f

ii-acestM<w<9

??

uo-len-B后

WaveNet:語音音頻合成

這里DeepMind的小哥演示了WaveNet的一些demo,具體的可以參見這里來了解。貼

一些效果對比:

XLA以及Keras與TensorFlow的融合

XLA與TensorFlow的結(jié)合

TensorFlow的各方面的優(yōu)勢都很突出,除了在速度這塊有些不足,如果,TensorFlow能

在速度上做進(jìn)一步優(yōu)化,會怎么樣呢?

Howdowe

keepthestrengths,

butadd

morespeed?!

PhotobyLwpKommunAAddhttp*//gooQI/NOQ68

是的,Google的開發(fā)者也意識到這個問題,于是有了這個XLA,XLA的優(yōu)勢:

提高執(zhí)行速度,編譯子圖會減少生命周期較短的op的時間,來至少TensorFlow執(zhí)

行是的時間;融合pipelined的op來減少內(nèi)存的開銷;

通過分析和調(diào)節(jié)內(nèi)存需求,來減少很多中間結(jié)果的緩存

減少定制化op的依賴,通過提供自動化融合底層ops的性能來達(dá)到原先需要手工去

融合定制化op的性能

減少移動設(shè)備的內(nèi)存占用,使用AOT編譯子圖來減少tensorflow執(zhí)行時間,能夠

共享object/headerfilepair給其他應(yīng)用,能夠在MobileInference上減少幾個數(shù)量級的

內(nèi)存占用

提高了程序的可移植性,能夠在不改變大部分tensorflow源碼的前提下,很容易地

更改以適應(yīng)新的硬件設(shè)備,

XLA主要包括兩種使用方式:JIT(Justintime)能夠自動將Graph中的部分子圖通過XLA

融合某些操作來減少內(nèi)存需求提高執(zhí)行速度;AOT(Ahead0ftime)可以提前將Gr叩h轉(zhuǎn)換

為可以執(zhí)行的源碼,減少生成的可執(zhí)行文件的大小,減少運(yùn)行的時間消耗,一個很明顯的

應(yīng)用場景是模型在移動設(shè)備上的Inference優(yōu)化。

因為XLA原理涉及到編譯器,這塊不是我擅長的地方,所以這里就這樣過了,如果有興趣

的小伙伴可以關(guān)注下xladocs還有此次TensorFlowDevSummit上XLA的talkXLA:

TensorFlow,Compiled!再貼幾張XLA的一些評測性能:

JITmodelbenchmarksGPU

■XIAapwMl

■XLAatov4Mm

JITmicro-benchmarksGPU

JITmodelbenchmarksCPU

Keras與TensorFlow的集成

Keras是一個可以在很多平臺上應(yīng)用的深度學(xué)習(xí)框架/AnAPISpecifyforbuildingdeep

已經(jīng)會在官方支

learningmodelsacrossmanyplatforms"oTensorFlowTensorFlow

持,1.1會在tf.contrib,1..2會tf.keras,而且會支持TensorFlowServing,是不是很心動。

Keras的作者在TensorFlowDevSummit上講了以下內(nèi)容:

所以之后Keras的用戶可以更快的在TensorFlow的框架下做出相應(yīng)地模型,能更方便地進(jìn)

行分布式訓(xùn)練,使用的進(jìn)行超參,還有更更重要的這

GoogleCloudML,:TF-Servingo

些feature現(xiàn)在好像還沒有支持,不過應(yīng)該很快了,大家可以期待下。這里,Francois

Chollet使用Keras構(gòu)造了一個Video-QA的model,這個模型在Keras的官方文檔也有

描述,具體可以去那邊看看,大概是這樣一個場景:

ToyvideoQAproblem

>Whatisthewomandoing?

>packing

>Whatisthecoiorofhershirt?

>black

這樣一個場景,利用原生的python構(gòu)造太難了,但是用Keras,只需要考慮設(shè)計你的模型,

如何來完成類似的功能,完全不用擔(dān)心coding的實現(xiàn),如圖是一個類似問題的一個簡單地

模型設(shè)計:

Roadmap

1.01.11.2

.—■.

cor?layersLayerslayers

EstimttorEftirrwUx

CannedEstimators

contribEstvnatorCannedEstimatorsMoreCannedEstimators

CannedEstwnaKxs

而在Keras中如何實現(xiàn)呢

video=tf.keras.layers.Input(shape=(None,150,150,3))

cnn=tf.keras.applications.InceptionV3(weights='imagenet',include_top=False,

pool='avg)

cnn.trainable=False

encoded_frames=tf.keras.layers.TimeDistributed(cnn)(video)

encoded_vid=tf.layers.LSTM(256)(encode_frames)

question=tf.keras.layers.Input(shape=(100),dtype='int32')

x=tf.keras.layers.Embedding(10000,256,mask_zero=True)(question)

encoded_q=tf.keras.layers.LSTM(128)(x)

x=tf.keras.layers.concat([encoded_vid,encoded_q])

x=tf.keras.layers.Dense(128,activation=tf.nn.relu)(x)

outputs=tf.keras.layers.Dense(1000)(x)

model=tf.keras.models.Mode([video,question],outputs)

pile(optimizer=tf.AdamOptimizer(),

loss=tf.softmax_crossentropy_with_logits)

這里代碼是無法在現(xiàn)在的tensorflow版本上跑的,如果想了解下keras上構(gòu)建上述模型的

簡便性,可以看看這里.Keras在構(gòu)造深度模型的方便是大家眾所周知的,值得期待之后

Keras在TensorFlow的更新:

Whatishappening

K^fascompatibAitymoduteintroducsdinTdnsorFtow.ker<1%|

?CoreTensorFlowlayersandKeraslayersarethesameoblectt

?KorasModelavailableincocoTensorFlow

?DeepintegrationwithTensorFlowfeatures(e.g.Experiment)

TensorFlowHigh-LevelAPIs:ModelsinaBox

TensorFlow在靈活性、可擴(kuò)展性、可維護(hù)性上做的很好,但是現(xiàn)在在高級叩i、模塊式算

法這塊原先都還不足,但是GoogleBrain的工程師在這個talk上介紹了一些High-level

API的相關(guān)工作。

layers:封裝了一些層的操作簡化用原生TensorFlow源碼比如new一個variable

來做weight等等;

EstimatororKeras:封裝了一些更高層的操作包括,train和evaluate操作,用戶

可以通過幾行代碼來快速構(gòu)建訓(xùn)練和評估過程;

CannedEstimators:更高級API,所謂的Modelsinabox

x-tf.Uy?rs.conv2d(x,kern?l..siz<?(5,5],...)

s

ma>poo<2x2??tf.layers.?aB_pool1ng2d(x,k?rnel_$-fze[2l2],...)

x?tf.layer*.convld(xtkemel.rlfS】,...?

x■tf.lay?rs.Ms_pool1ng2d(xtkern?l_s1z?>[2.2),???)

M?tf.layer*.dense(x,.nn.rwlu)

K?If.layers.dropov:(x,0.5)

dense0?nex)x■tf.layers.donse(x)

構(gòu)造左圖中所示的深度網(wǎng)絡(luò)只需要如圖右中的七行代碼同樣,構(gòu)建訓(xùn)練、評估、預(yù)測也很

快可以通過api調(diào)用完成:

結(jié)果是ModelinaBox

area=real_valued_column("square_foot")

rooms=real_valued_column(nnum_rooms'')

zip_code=sparse_column_with_integerized_feature("zip_code",100000)

regressor=LinearRegressor(feature_columns=[area,room,zip_code])

classifier.fit(train_input_fn)

classifier.evaluate(eval_input_fn)

一些其他技術(shù)以及生態(tài)

MLToolkit

TensorFlow可能剛開始被人知曉,就是因為大家都覺得他是一個深度學(xué)習(xí)的框架,其實不

是,現(xiàn)在TensorFlow上還有很多機(jī)器學(xué)習(xí)的算法集成:

MLToolkit

?Linear/Logisticregression

?KMeansClustering

?GaussianMixtureModel

?WALSMatrixFactorization

?SupportVectorMachine

?StochasticDualCoordinateAscent

?RandomForest

?DNN,RNN,LSTM,Wide&Deep,...

而且算法API的開發(fā)都是仿照scikit-learn的風(fēng)格,有Python下做機(jī)器學(xué)習(xí)的小伙伴,可

以很快的適應(yīng)。這里值得提出的,有趣TensorFlow對機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型的支持,

小伙伴們可以特別容易地結(jié)合傳統(tǒng)的機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)模型來一起訓(xùn)練:

分布式TensorFlow

TensorFlow在分布式性能上,前面也提到了,在1.0版本上有了很大的提升可以做到64

塊GPU上達(dá)到58倍的加速,這里先基本介紹下數(shù)據(jù)并行和模型并行:

Modelparallelism

TrainingdeepLSTMmodelswith8GPUsperworker

ParameterS?rvtf

?并行每一介worker上有完整的模型,部分?jǐn)?shù)據(jù),參數(shù)的更新傳給ParamsServer;

?模型并行每一worker上有部分的網(wǎng)珞模型;

怎么在TensorFlow寫分布式代碼,這里我就不說了,很簡單地配置,這里我講下,可能大

部分像我這樣的小伙伴之前不太了解的一些彩蛋在TensorFlow中做分布式訓(xùn)練的一些技

巧,有過分布式train的經(jīng)驗應(yīng)該會很感激這些黑科技:-Round-Robinvariables-

Loadbalancingandp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論