Model Garden 總覽

TensorFlow Model Garden 提供適用於視覺和自然語言處理 (NLP) 的多種最新機器學習 (ML) 模型實作項目,以及工作流程工具,讓您可以在標準資料集上快速設定及執行這些模型。無論您是要為知名的模型評估效能、驗證近期發布的研究結果,還是擴充現有模型,Model Garden 都能協助您推動 ML 研究和應用程式向前發展。

Model Garden 包含以下機器學習開發人員資源

這些資源是專為搭配 TensorFlow Core 架構使用而建置,並與您現有的 TensorFlow 開發專案整合。Model Garden 資源也以 開放原始碼授權提供,因此您可以自由擴充和散布模型和工具。

實用的 ML 模型在訓練和執行時需要大量運算資源,而且可能需要圖形處理單元 (GPU) 和張量處理單元 (TPU) 等加速器。Model Garden 中的大多數模型都是使用 TPU 在大型資料集上訓練的。不過,您也可以在 GPU 和 CPU 處理器上訓練和執行這些模型。

Model Garden 模型

Model Garden 中的機器學習模型包含完整程式碼,因此您可以測試、訓練或重新訓練這些模型,以進行研究和實驗。Model Garden 包含兩個主要模型類別:官方模型研究模型

官方模型

官方模型存放區是最新模型的集合,重點是視覺和自然語言處理 (NLP)。這些模型是使用目前的 TensorFlow 2.x 高階 API 實作的。此存放區中的模型程式庫已針對快速效能進行最佳化,並由 Google 工程師積極維護。官方模型包含您可以使用的其他中繼資料,以便使用 Model Garden 訓練實驗架構快速設定實驗。

研究模型

研究模型存放區是作為研究論文的程式碼資源發布的模型集合。這些模型是使用 TensorFlow 1.x 和 2.x 實作的。研究資料夾中的模型程式庫由程式碼擁有者和研究社群支援。

訓練實驗架構

Model Garden 訓練實驗架構可讓您使用其官方模型和標準資料集快速組裝和執行訓練實驗。訓練架構使用 Model Garden 官方模型隨附的其他中繼資料,讓您可以使用宣告式程式設計模型快速設定模型。您可以使用 TensorFlow 模型程式庫中的 Python 指令定義訓練實驗,或使用 YAML 設定檔設定訓練,例如這個 範例

訓練架構使用 tfm.core.base_trainer.ExperimentConfig 作為設定物件,其中包含下列頂層設定物件

  • runtime:定義處理硬體、分配策略和其他效能最佳化
  • task:定義模型、訓練資料、損失和初始化
  • trainer:定義最佳化工具、訓練迴圈、評估迴圈、摘要和檢查點

如需使用 Model Garden 訓練實驗架構的完整範例,請參閱使用 Model Garden 進行圖片分類教學課程。如需訓練實驗架構的相關資訊,請參閱 TensorFlow Models API 文件。如果您正在尋找管理模型訓練實驗訓練迴圈的解決方案,請參閱 Orbit

專門的 ML 運算

Model Garden 包含許多專門設計的視覺和 NLP 運算,可在 GPU 和 TPU 上有效率地執行最新模型。請查看 TensorFlow Models Vision 程式庫 API 文件,以取得專門的 視覺運算清單。請查看 TensorFlow Models NLP 程式庫 API 文件,以取得 NLP 運算清單。這些程式庫也包含用於視覺和 NLP 資料處理、訓練和模型執行的其他公用程式函式。

使用 Orbit 進行訓練迴圈

Orbit 工具是彈性、輕量的程式庫,旨在讓您更輕鬆地在 TensorFlow 2.x 中編寫自訂訓練迴圈,並且與 Model Garden 訓練實驗架構搭配使用效果良好。Orbit 可處理常見的模型訓練工作,例如儲存檢查點、執行模型評估,以及設定摘要寫入。它可以與 tf.distribute 無縫整合,並支援在不同的裝置類型 (包括 CPU、GPU 和 TPU 硬體) 上執行。Orbit 工具也是 開放原始碼,因此您可以擴充並調整以符合您的模型訓練需求。

您通常會透過編寫自訂訓練迴圈,或使用高階 Keras Model.fit 函式來訓練 TensorFlow 模型。對於簡單的模型,您可以使用低階 TensorFlow 方法 (例如 tf.GradientTapetf.function) 定義和管理自訂訓練迴圈。或者,您可以使用高階 Keras Model.fit

但是,如果您的模型很複雜,而且您的訓練迴圈需要更彈性的控制或自訂,則應使用 Orbit。您可以使用 orbit.AbstractTrainerorbit.StandardTrainer 類別定義大部分的訓練迴圈。如要進一步瞭解 Orbit 工具,請參閱 Orbit API 文件