由Google大腦開發而後開源的深度學習函式庫TensorFlow,官方釋出更多TensorFlow 2.0的消息,主要更新的大方向是要簡化建模的程序,並強化了平臺部署以及實驗功能。新功能包括tf.keras、預設啟用的Eager Execution以及部署函式庫等,官方預計將會在今年初的時候釋出公開預覽版。

TensorFlow發展至今已經超過3歲,這過程TensorFlow新加入了許多元件,而在TensorFlow 2.0,這些元件將被打包成一個綜合平臺,以支援從訓練到部署的機器學習工作流程。TensorFlow 2.0主打的重點之一是讓模型建置更加簡單,最近類神經網路函式庫Keras成為TensorFlow中央高階API,能被用來建置和訓練模型,官方認為,Keras API有助於TensorFlow的入門。Keras提供了包括Sequential、Functional以及Subclassing等數種建置模型的API,開發者可以根據需求,選擇適合的抽象層級用於專案中。

官方舉例了使用Keras建置模型的工作流程,第一步可以使用tf.data載入資料,接著第二步以tf.keras建置、訓練以及驗證模型,官方提到,Keras與TensorFlow緊密整合,因此使用者可以存取任何的TensorFlow功能,而且也可使用一系列標準套件模型,包括線性、邏輯回歸或是梯度提升決策樹等。如果不想從頭開始訓練模型,開發者也可以使用TensorFlow Hub的模組,接著訓練Keras或是Estimator模型。

第三步以Eager Execution執行與偵錯,TensorFlow 2.0預設啟用Eager Execution功能,開發者將能獲得更流暢的偵錯體驗,另外,tf.function也會將Python轉換成TensorFlow圖,以提供效能最佳化、遠端執行、簡易序列化、輸出與部署等能力。

官方也提到,第四步開發者可以使用目前部分釋出的分散策略(Distribution Strategy)API,執行大型機器學習任務,該API可以簡化在不同硬體配置上分散訓練模型的工作,而且不需要額外改變模型的定義。第五步則可以使用SavedModel輸出模型,TensorFlow 2.0將會標準化模型成可交換格式,可在TensorFlow Serving、TensorFlow Lite、TensorFlow.js以及TensorFlow Hub等地方使用。

也由於在TensorFlow 2.0中,標準化交換格式以及一致的API,賦予模型更強大部署能力,提高了跨平臺元件的相容性。因此開發者從TensorFlow輸出的模型,除了可以直接在應用程式中使用,也可以在TensorFlow Serving、TensorFlow Lite與TensorFlow.js等部署函式庫中使用。

TensorFlow Serving允許模型以HTTP/REST或是gRPC/Protocol Buffers方式提供,而輕量級TensorFlow Lite針對行動與嵌入式裝置,可在Android、iOS或是樹莓派上部署模型。TensorFlow.js則可以在JavaScript環境中部署模型,而TensorFlow也支援多種程式語言,現在有C、Java、Go、C#、Rust、Julia以及R等。

TensorFlow 2.0加入了一系列的功能,以幫助開發者快速的將想法轉為程式碼,在不犧牲執行效能的情況下,定義和訓練模型。Keras Functional API以及Model Subclassing API,能讓開發者創建複雜的拓撲,另外,開發者還可以自定義訓練邏輯,使用tf.GradientTape和tf.custom_gradient對梯度計算進行精細度控制。

TensorFlow 2.0還加入了一些新功能,供研究人員和進階使用者使用擴充進行實驗,像是Ragged Tensors、TensorFlow Probability和Tensor2Tensor等。官方提到,結合Eager Execution、分散策略API以及AutoGraph,TensorFlow 2.0成為一個可高度自訂,並且可擴展的平臺。

TensorFlow 2.0與TensorFlow 1.x的差異,除了之前釋出消息,將tf.contrib從TensorFlow儲存庫和建置程序中移除外,也改變了變數處理方式以及重新命名部分API,另外也移除了佇列執行器以及圖集合。為了簡化開發者從舊版本搬移到TensorFlow 2.0的手續,官方釋出轉換工具,可以自動轉換程式碼,並更換相對應的API,也會標記無法轉換的程式碼。

另外,SavedModels和儲存的GraphDefs將會向後相容,也就是說TensorFlow 1.x輸出的SavedModels將能繼續於TensorFlow 2.x版本中使用。官方將繼續為TensorFlow 1.x提供12個月的安全補丁,提供用戶足夠的過度時間。


Advertisement

更多 iThome相關內容