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