開源深度學習函式庫TensorFlow團隊在今年初不斷釋出2.0的消息,春季也推出了Alpha測試版,而現在終於在TensorFlow World大會上,正式發表了TensorFlow 2.0.0。這個版本重點擺在易用性的改進,加強與Python開源神經網路函式庫Keras的整合,並且簡化API降低功能重複。

TensorFlow 2.0整合Keras作為建置和訓練模型的中央高階API,Keras提供了一些模型建置的API,可用來建立像是序列式(Sequential)、功能式(Functional)和子類別(Subclassing)等模型。而這些API可以與Eager Execution功能結合使用,Eager Execution是TensorFlow的命令式程式開發環境,能立即執行程式碼評估操作,讓開發者快速對程式碼除錯並進行迭代。另外,Keras 模型建置API也可以結合tf.data,建置可擴充的出入工作管線。

而TensorFlow 2還更新了分散式訓練策略,開發者可以使用tf.distribute.Strategy API,以最少的程式碼更動分散模型訓練,進而獲得良好的效能,這個API也支援Keras model.fit分散式訓練以及自定義訓練迴圈,同時還支援多GPU訓練,目前多重Worker和Cloud TPUs進入實驗性支援階段。

官方提到,他們不鼓勵開發者使用傳統的宣告式程式設計模型建置圖(Graph),接著並透過tf.Session來執行,而是應該要以正規的Python函式寫法代替。使用tf.function裝飾器(Decorator)可以將函式轉換為圖,這些圖可以遠端執行、序列化以及進行效能最佳化。

現在TensorFlow交換格式都與SavedModel統一,所有TensorFlow生態系的專案,像是TensorFlow Lite、TensorFlow JS、TensorFlow Serving和TensorFlow Hub專案都接受SavedModel。SavedModel格式內容具有完整的TensorFlow程式,包含權重和計算,不需要原始建置模型的程式碼就能執行,這對於模型共享或是部署非常有用。

開發團隊為TensorFlow 2的API進行了調整,許多API符號經重新命名或是刪除,參數名稱也被更改,整體來說,調整後能讓API的使用經驗更加一致清楚。

熱門新聞

Advertisement