谷歌發布tf.Transform:一個TensorFlow數據預處理庫

jopen 7年前發布 | 21K 次閱讀 TensorFlow

當我們將機器學習應用于真實世界數據集時,我們需要花費大量工作來將數據處理成適合標準機器學習模型(比如神經網絡)的格式。這種預處理(preprocessing)有許多不同的形式——從格式之間的轉換,到文本的標記化(tokenizing)和提干(stemming)以及形成詞匯表,再到執行各種數值運算(例如歸一化)。

今天,我們宣布發布 tf.Transform,這是一個 TensorFlow 庫,可以讓用戶定義預處理流程(preprocessing pipelines)和使用大規模數據處理框架運行這些流程,同時還能讓用戶以一種將這些流程作為 TensorFlow graph 一部分的方式運行從而利用這些流程。用戶可以通過將模塊化的 Python 函數組合到一起來定義一個流程,然后 tf.Transform 會使用 Apache Beam 來執行它。Apache Beam 是一個用于大規模數據的、高效的、分布式的數據處理框架。通過 Apache Beam 計劃好的對其它框架的運行支持,Apache Beam 流程還能運行在 Google Cloud Dataflow 上。通過 tf.Transform 導出的 TensorFlow graph 可以讓預處理步驟在訓練好的模型被用于預測時被復制,比如當使用 TensorFlow Serving 將模型投入應用時。

相關鏈接:

  • tf.Transform:https://github.com/tensorflow/transform

  • Apache Beam:https://beam.apache.org/

  • Google Cloud Dataflow:https://cloud.google.com/dataflow

  • TensorFlow Serving:https://tensorflow.github.io/serving/

在生產中運行機器學習模型時會常常遇到一個問題:「訓練-應用偏差(training-serving skew)」,參閱機器之心文章《 谷歌機器學習應用的四十三條經驗法則 》。「訓練-應用偏差」是指當投入產品應用階段的模型所收到的數據在某些方面不同于該模型在訓練過程中所使用的數據時,預測質量出現下降的情況。tf.Transform 通過保證應用階段的變換和訓練階段所執行的變換完全相同,能夠確保在預處理過程中不會出現偏差,這不同于訓練階段和應用階段的預處理在兩個不同的環境中分別實現的情況(比如,分別在 Apache Beam 和 TensorFlow 環境中)。

除了方便預處理之外,tf.Transform 允許用戶為他們的數據集計算匯總的統計。在每一個機器學習項目中,理解數據都是非常重要的,因為如果對基本數據做出了錯誤的假設,那么就會產生一些微妙的錯誤。為了使這種匯總統計的計算簡單有效,tf.Transform 允許用戶檢查他們關于原始數據和預處理后的數據的假設。

谷歌發布tf.Transform:一個TensorFlow數據預處理庫

tf.Transform 允許用戶定義預處理流程。用戶能夠在 TensorFlow 訓練中具體化要預處理的數據,也能導出一個 tf.Transform graph,其能將轉換過程編碼為 TensorFlow graph。然后這一轉換圖(transformation graph)可被整合進用于推斷的模型圖。

我們非常高興能把這個最新版本添加到 TensorFlow 生態系統中,我們希望用戶發現它對預處理、理解數據有所幫助。

致謝

我們感謝以下 tf.Transform 成員為該項目所作出的貢獻: Clemens Mewald, Robert Bradshaw, Rajiv Bharadwaja, Elmer Garduno, Afshin Rostamizadeh, Neoklis Polyzotis, Abhi Rao, Joe Toth, Neda Mirian, Dinesh Kulkarni, Robbie Haertel, Cyril Bortolato and Slaven Bilac。也感謝 TensorFlow、TensorFlow Serving 和 Cloud Dataflow 團隊的支持。

原文地址:https://research.googleblog.com/2017/02/preprocessing-for-machine-learning-with.html

來自: http://www.jiqizhixin.com/article/2343

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!