摘要:機(jī)器學(xué)習(xí)模型內(nèi)部的組成部分,可以使用進(jìn)行打包和共享。為機(jī)器學(xué)習(xí)開發(fā)者提供庫產(chǎn)生了庫。庫是一個在中進(jìn)行發(fā)布和重用中機(jī)器學(xué)習(xí)模塊的平臺。
摘要: 本文對TensorFlow Hub庫的介紹,并舉例說明其用法。
在軟件開發(fā)中,最常見的失誤就是容易忽視共享代碼庫,而庫則能夠使軟件開發(fā)具有更高的效率。從某種意義上來說,它改變了編程的過程。我們常常使用庫構(gòu)建塊或模塊,并將其連接在一起進(jìn)行編程。
開發(fā)人員是如果使用庫的呢?除了共享代碼之外,我們還可以共享預(yù)訓(xùn)練模型。共享預(yù)訓(xùn)練模型能夠使開發(fā)人員有針對性的開發(fā)該模型,而不需要訪問計算資源或手頭上用于訓(xùn)練模型的原始數(shù)據(jù)。例如,NASNet架構(gòu)在GPU上花費(fèi)數(shù)千個小時進(jìn)行訓(xùn)練。通過共享學(xué)習(xí)到的權(quán)重,其他開發(fā)人員就能夠更容易重用庫和構(gòu)建模型或架構(gòu)。
機(jī)器學(xué)習(xí)模型內(nèi)部的“組成部分”,可以使用TensorFlow Hub進(jìn)行打包和共享。從某種意義上來講,除了架構(gòu)本身,共享預(yù)先訓(xùn)練好的模型的同時,也共享了開發(fā)模型的計算時間和數(shù)據(jù)集。
為機(jī)器學(xué)習(xí)開發(fā)者提供庫產(chǎn)生了TensorFlow Hub庫。TensorFlow Hub庫是一個在TensorFlow中進(jìn)行發(fā)布和重用中機(jī)器學(xué)習(xí)模塊的平臺。我們可以在其他類似的任務(wù)中重復(fù)使用一個模塊(一個TensorFlow的獨(dú)立片段及其權(quán)重)。 開發(fā)人員也可以重用一個模塊使用一個更小的數(shù)據(jù)集來訓(xùn)練模型,來提高泛化或加快訓(xùn)練速度。下面來看幾個具體的例子。
圖像再訓(xùn)練
首先,我們從少量的訓(xùn)練數(shù)據(jù)開始——圖像分類器?,F(xiàn)代圖像識別模型具有數(shù)百萬個參數(shù),如果從頭開始訓(xùn)練,就需要大量的標(biāo)記數(shù)據(jù)和計算能力。使用圖像再訓(xùn)練技術(shù),就可以使用很少的數(shù)據(jù)來訓(xùn)練模型,并且計算時間也少得多。以下是TensorFlow Hub的外觀。
其基本思想是,用一個現(xiàn)成的圖像識別模塊從圖像中提取特征訓(xùn)練一個新的分類器。正如你所看到的一樣,TensorFlow Hub模塊可以在構(gòu)建TensorFlow圖時通過URL(或文件路徑)進(jìn)行實例化。TensorFlow Hub上有多種模塊可供選擇,包括NASNet、MobileNet(包括其最近的V2)、Inception、ResNet等。想要使用某一模塊,首先導(dǎo)入TensorFlow Hub,然后將模塊的URL地址復(fù)制/粘貼到代碼中即可。
每個模塊都有一個已定義的接口,在不了解其內(nèi)在結(jié)構(gòu)的情況下,也能夠替換使用。這個模塊提供了一個檢索預(yù)期圖像大小的方法:只需提供一組有正確形狀的圖像,然后調(diào)用該模塊來檢索圖像的特征表示。該模塊負(fù)責(zé)對圖像進(jìn)行預(yù)處理,可以直接將圖像轉(zhuǎn)換為其特征表示,然后再構(gòu)建一個線性模型或其他類型的分類器。
請注意,我們使用的模塊是由Google開發(fā)的,并且是版本化的(因此模塊在實驗中不會改變)。和普通Python函數(shù)一樣,我們也可以使用該模塊來構(gòu)建模型的一部分。一旦導(dǎo)出到磁盤,模塊是獨(dú)立的,無需訪問創(chuàng)建和訓(xùn)練該模塊的代碼和數(shù)據(jù)(也可以發(fā)布代碼和數(shù)據(jù)),也能供其他人所使用。
文本分類
現(xiàn)在你想訓(xùn)練一個模型:將電影評論分為正面或負(fù)面,但是只有少量的訓(xùn)練數(shù)據(jù)(比如只有幾百個正面和負(fù)面的電影評論)。由于訓(xùn)練數(shù)據(jù)有限,因此你打算使用以前在大得多的語料庫上訓(xùn)練過的詞嵌入數(shù)據(jù)集。以下是使用TensorFlow Hub思路。
同樣,首先選擇一個模塊。TensorFlow Hub提供了多種文本模塊,包括基于各種語言(EN,JP,DE和ES)的神經(jīng)網(wǎng)絡(luò)語言模型,在維基百科上訓(xùn)練的Word2vec模型和在Google新聞上訓(xùn)練的NNLM嵌入。
在這里,我們使用一個模塊來進(jìn)行文本嵌入。使用上面的代碼下載一個模塊,用來對一個句子進(jìn)行預(yù)處理,然后檢索每個塊的嵌入,這就意味著可以直接將數(shù)據(jù)集中的句子轉(zhuǎn)換為適合分類器的格式。該模塊負(fù)責(zé)標(biāo)記句子和其他邏輯(如處理詞典外的單詞)。預(yù)處理邏輯和嵌入都封裝在一個模塊中,使在各種不同的數(shù)據(jù)集上的文字嵌入和預(yù)處理策略變得更加容易,而不必對代碼進(jìn)行大幅度的變動。
通用句子編碼器
我們還分享了一個新的TensorFlow Hub模塊!下面是通用句子編碼器。它是在各種各樣的數(shù)據(jù)集(“通用”)上訓(xùn)練的句級嵌入模塊。其功能是語義相似性、自定義文本分類和聚類。
這篇文章展示了如何在任何一個可嵌入句子的TF-Hub模塊上訓(xùn)練一個簡單的二進(jìn)制文本分類器。
如在圖像再訓(xùn)練中,使用相對較少的標(biāo)記數(shù)據(jù)使模塊適應(yīng)某一任務(wù),如餐廳評論。查看本教程以了解更多信息。
其他模塊
TensorFlow Hub不僅僅是圖像和文本分類。用于Progressive GAN和Google地標(biāo)深層特征的其他模塊請查看鏈接。
注意事項
使用TensorFlow Hub模塊時需要考慮幾個重要因素:首先,請記住模塊包含的可運(yùn)行的代碼,一定要使用可信來源的模塊;其次,正如所有的機(jī)器學(xué)習(xí)一樣,公平性是一個很重要的因素。
上面的兩個例子都使用了預(yù)先訓(xùn)練好的大數(shù)據(jù)集。當(dāng)重復(fù)使用這樣的數(shù)據(jù)集時,注意其包含的數(shù)據(jù)是否存在偏差,以及這些是如何影響正在構(gòu)建的模型和用戶的。
本文由阿里云云棲社區(qū)組織翻譯。
文章原標(biāo)題《Introducing TensorFlow Hub: A Library for Reusable Machine Learning Modules in TensorFlow》,譯者:Mags,審校:袁虎。
文章為簡譯,更為詳細(xì)的內(nèi)容,請查看原文。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/11839.html
摘要:今年,發(fā)布了面向開發(fā)者的全新機(jī)器學(xué)習(xí)框架。今年,圍繞,谷歌同樣做出了幾項重大宣布發(fā)布新的官方博客與頻道面向開發(fā)者的全新機(jī)器學(xué)習(xí)框架發(fā)布一系列新的庫與工具例如等。提供了多種適用于張量的線性代數(shù)和機(jī)器學(xué)習(xí)運(yùn)算的。 當(dāng)時時間 3 月 30 日,谷歌 TenosrFlow 開發(fā)者峰會 2018 在美國加州石景山開幕,來自全球的機(jī)器學(xué)習(xí)用戶圍繞 TensorFlow 展開技術(shù)演講與演示。去年的 Ten...
摘要:據(jù)介紹,在谷歌近期的強(qiáng)化學(xué)習(xí)和基于進(jìn)化的的基礎(chǔ)上構(gòu)建,快速靈活同時能夠提供學(xué)習(xí)保證。剛剛,谷歌發(fā)布博客,開源了基于的輕量級框架,該框架可以使用少量專家干預(yù)來自動學(xué)習(xí)高質(zhì)量模型。 TensorFlow 是相對高階的機(jī)器學(xué)習(xí)庫,用戶可以方便地用它設(shè)計神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),而不必為了追求高效率的實現(xiàn)親自寫 C++或 CUDA 代碼。它和 Theano 一樣都支持自動求導(dǎo),用戶不需要再通過反向傳播求解...
摘要:概述這是使用機(jī)器學(xué)習(xí)預(yù)測平均氣溫系列文章的最后一篇文章了,作為最后一篇文章,我將使用的開源機(jī)器學(xué)習(xí)框架來構(gòu)建一個神經(jīng)網(wǎng)絡(luò)回歸器。請注意,我把這個聲明推廣到整個機(jī)器學(xué)習(xí)的連續(xù)體,而不僅僅是神經(jīng)網(wǎng)絡(luò)。 概述 ??這是使用機(jī)器學(xué)習(xí)預(yù)測平均氣溫系列文章的最后一篇文章了,作為最后一篇文章,我將使用google的開源機(jī)器學(xué)習(xí)框架tensorflow來構(gòu)建一個神經(jīng)網(wǎng)絡(luò)回歸器。關(guān)于tensorflow...
閱讀 3478·2021-11-18 10:02
閱讀 3725·2021-09-13 10:25
閱讀 1931·2021-07-26 23:38
閱讀 2585·2019-08-30 15:44
閱讀 2294·2019-08-30 13:51
閱讀 1239·2019-08-26 11:35
閱讀 2284·2019-08-26 10:29
閱讀 3457·2019-08-23 14:56