中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
分布式機(jī)器學(xué)習(xí)框架-TensorFlow on Spark(中)

深度學(xué)習(xí)與 Spark 和 TensorFlow

在過去幾年中,神經(jīng)網(wǎng)絡(luò)已經(jīng)看到壯觀進(jìn)展,并且他們現(xiàn)在是圖像識別和自動翻譯領(lǐng)域中最強(qiáng)者。TensorFlow是數(shù)值計算和神經(jīng)網(wǎng)絡(luò)發(fā)布的谷歌的新框架。在這個博客中,我們將演示如何使用TensorFlow和Spark一起訓(xùn)練和應(yīng)用深度學(xué)習(xí)模型。

你可能會困惑:在最高性能的深度學(xué)習(xí)實現(xiàn)是單節(jié)點的當(dāng)下, Spark 的用處在哪里?為了回答這個問題,我們將會演示兩個例子并解釋如何使用 Spark 和機(jī)器集群搭配 TensorFlow 來提高深度學(xué)習(xí)的管道數(shù)。

  1. 超參數(shù)調(diào)整: 使用 Spark 來找到最好的神經(jīng)網(wǎng)絡(luò)訓(xùn)練參數(shù)集,減少十倍訓(xùn)練時間并減低34%的失誤率。

  2. 部署模型規(guī)模: 使用 Spark 在大量數(shù)據(jù)上應(yīng)用訓(xùn)練完畢的神經(jīng)網(wǎng)絡(luò)模型。

超參數(shù)調(diào)整

深度機(jī)器學(xué)習(xí)(ML)技術(shù)的一個例子是人工神經(jīng)網(wǎng)絡(luò)。它們采取一個復(fù)雜的輸入,如圖像或音頻記錄,然后應(yīng)用復(fù)雜的數(shù)學(xué)變換這些信號。此變換的輸出是更易于由其他ML算法操縱的數(shù)字向量。人工神經(jīng)網(wǎng)絡(luò)通過模仿人類大腦的視覺皮層的神經(jīng)元(以相當(dāng)簡化的形式)執(zhí)行該轉(zhuǎn)換。

就像人類學(xué)會解讀他們所看到的,人工神經(jīng)網(wǎng)絡(luò)需要通過訓(xùn)練來識別那些“有趣”的具體模式。例如,這些可以是簡單的模式,例如邊緣,圓形,但也可以是更復(fù)雜模式。在這里,我們將用NIST提供的經(jīng)典數(shù)據(jù)集來訓(xùn)練神經(jīng)網(wǎng)絡(luò)識別這些數(shù)字:

TensorFlow 庫自動創(chuàng)建的各種形狀和大小的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。建立一個神經(jīng)網(wǎng)絡(luò)的實際過程,比在數(shù)據(jù)集上跑一些方法要復(fù)雜得多。通常有一些非常重要的超參數(shù)(通俗地 說,參數(shù)配置)來設(shè)置,這將影響該模型是如何訓(xùn)練的。選擇正確的參數(shù)會導(dǎo)致性能優(yōu)越,而壞的參數(shù)將會導(dǎo)致長時間的訓(xùn)練和糟糕的表現(xiàn)。在實踐中,機(jī)器學(xué)習(xí)從 業(yè)者會多次使用不同的超參數(shù)運行相同的模型,以期找到最佳的集合。這是一個經(jīng)典的技術(shù),稱為超參數(shù)調(diào)整。

建立一個神經(jīng)網(wǎng)絡(luò)時,有許多需要精心挑選的重要超參數(shù)。 例如:

  • 在每個層的神經(jīng)元數(shù)目:太少的神經(jīng)元會降低網(wǎng)絡(luò)的表達(dá)能力,但太多會大大增加運行時間,并返回噪音估計。

  • 學(xué)習(xí)速度:如果過高,神經(jīng)網(wǎng)絡(luò)將只專注于看到過去的幾樣,并不顧一切之前積累的經(jīng)驗。如果太低,這將需要很長時間才能達(dá)到一個很好的狀態(tài)。

這里有趣的是,即使 TensorFlow 本身不予分發(fā),超參數(shù)調(diào)整過程是“embarrassingly parallel”,并且可以使用 Spark 分配。在這種情況下,我們可以使用 Spark 廣播常見的元素,例如數(shù)據(jù)和模型描述,然后以容錯方式安排跨越機(jī)器集群的個體進(jìn)行重復(fù)計算。

如何使用 Spark 提高精度?用默認(rèn)的超參數(shù)設(shè)置精 度為99.2%。我們在測試集上的最好結(jié)果是99.47%的精確度,減少34%的測試誤差。分布式計算時間與添加到集群節(jié)點的數(shù)量成線性關(guān)系:使用13個 節(jié)點的集群,我們能夠同時培養(yǎng)13個模型,相比于在一臺機(jī)器一個接著一個訓(xùn)練速度提升了7倍。這里是相對于該集群上機(jī)器的數(shù)量的計算時間(以秒計)的曲線 圖:

最重要的是,我們分析了大量訓(xùn)練過程中的超參數(shù)的靈敏度。例如,我們相對于不同數(shù)目的神經(jīng)元所得學(xué)習(xí)率繪制了最終測試性能圖:

這顯示了一個典型的神經(jīng)網(wǎng)絡(luò)權(quán)衡曲線:

  • 學(xué)習(xí)速度是非常關(guān)鍵的:如果它太低,神經(jīng)網(wǎng)絡(luò)沒有學(xué)到任何東西(高測試誤差)。如果它太高,訓(xùn)練過程可能發(fā)生隨機(jī)振蕩甚至在某些配置下出現(xiàn)發(fā)散。

  • 神經(jīng)元的數(shù)目對于獲得良好的性能來說沒有那么重要,并且有更多神經(jīng)元的網(wǎng)絡(luò)的學(xué)習(xí)率更加敏感。這是奧卡姆剃刀原則:對大多數(shù)目標(biāo)來說,簡單的模型 往往已經(jīng)“足夠好”。如果你有時間和資源來除去這缺少的1%測試誤差,在訓(xùn)練中投入了大量的資源,并找到合適的超參數(shù),這才會有所不同。

通過使用參數(shù)稀疏樣本,我們可以在最優(yōu)的參數(shù)集下取得零失誤率。

我該如何使用它?

盡管 TensorFlow 可以使用每一個 worker 上的所有核心,我們只能在同一時間對每個工人運行一個任務(wù),我們將它們打包以限制競爭。TensorFlow 庫可以按照[instructions on the TensorFlow website](https://www.tensorflow.org/get_started/os_setup.html)上的指示安裝在 Spark 集群上作為一個普通的Python庫。下面的筆記展示了如何安裝TensorFlow并讓用戶重復(fù)該文章的實驗:

大規(guī)模部署

TensorFlow 模型可以直接在管道內(nèi)嵌入對數(shù)據(jù)集執(zhí)行復(fù)雜的識別任務(wù)。作為一個例子,我們將展示我們?nèi)绾文軌蚴褂靡粋€已經(jīng)訓(xùn)練完成的股票神經(jīng)網(wǎng)絡(luò)模型標(biāo)注一組圖片

首先使用 Spark 內(nèi)置的廣播機(jī)制將該模型分發(fā)到集群中的worker上:

with gfile.FastGFile( 'classify_image_graph_def.pb', 'rb') as f:model_data = f.read()model_data_bc = sc.broadcast(model_data)

之后,這個模型被加載到每個節(jié)點上,并且應(yīng)用于圖片。這是每個節(jié)點運行的代碼框架:

def apply_batch(image_url):# Creates a new TensorFlow graph of computation and imports the modelwith tf.Graph().as_default() as g:graph_def = tf.GraphDef()graph_def.ParseFromString(model_data_bc.value)tf.import_graph_def(graph_def, name='')# Loads the image data from the URL:image_data = urllib.request.urlopen(img_url, timeout=1.0).read()# Runs a tensor flow session that loads the with tf.Session() as sess:  softmax_tensor = sess.graph.get_tensor_by_name('softmax:0')  predictions = sess.run(softmax_tensor, {'DecodeJpeg/contents:0': image_data})  return predictions

通過將圖片打包在一起,這份代碼可以運行地更快。
下面是圖片的一個樣例:

這是神經(jīng)網(wǎng)絡(luò)對于這張圖片的解釋,相當(dāng)精確:

   ('coral reef', 0.88503921),   ('scuba diver', 0.025853464),   ('brain coral', 0.0090828091),   ('snorkel', 0.0036010914),   ('promontory, headland, head, foreland', 0.0022605944)])

期待

我們已經(jīng)展示了如何將 Spark 和 TensorFlow結(jié)合起來訓(xùn)練和部署手寫數(shù)字識別和圖片分類的神經(jīng)網(wǎng)絡(luò)。盡管我們使用的神經(jīng)網(wǎng)絡(luò)框架自身只能在單節(jié)點運行,但我們可以用 Spark 分發(fā)超參數(shù)調(diào)節(jié)過程和模型部署。這不僅縮短了訓(xùn)練時間,而且還提高了精度,使我們更好地理解各種超參數(shù)的靈敏度。

盡管這支持是只適用于Python的,我們?nèi)云诖梢蕴峁?TensorFlow 和 Spark其它框架之間更深度的集成。

英文原文:https://databricks.com/blog/2016/01/25/deep-learning-with-spark-and-tensorflow.html


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
揭秘TensorFlow:Google開源到底開的是什么?
機(jī)器學(xué)習(xí)零基礎(chǔ)?手把手教你用TensorFlow搭建圖像識別系統(tǒng)(三)| 干貨
TensorFlow構(gòu)建繪制和解釋人工神經(jīng)網(wǎng)絡(luò)
TensorFlow系列專題(十四): 手把手帶你搭建卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)冰山圖像分類
2023 年最常見的人工智能面試問題(精選)
騰訊深度學(xué)習(xí)平臺亮相機(jī)器學(xué)習(xí)頂級會議ICML2014
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服