ignite: 一個用於 PyTorch 的高階訓練與評估函式庫,以靈活的事件驅動系統取代冗長的樣板程式碼

ignite: 一個用於 PyTorch 的高階訓練與評估函式庫,以靈活的事件驅動系統取代冗長的樣板程式碼

它解決了什麼問題

PyTorch-Ignite 簡化了在 PyTorch 中訓練與評估神經網路的過程。它消除了為訓練與驗證迴圈編寫重複性樣板程式碼的需求,同時保持對訓練過程的完全控制。

運作原理

Ignite 使用基於引擎(engine-based)的系統,使用者可以定義一個 train_step 並實例化一個 Engine。這個引擎會處理迴圈的執行。若要增加功能,使用者可以附加「事件處理器」(event handlers)——這些是會在訓練過程中的特定點觸發的函式(例如:在一個 epoch 的開始或一次迭代的完成時)。這些處理器可以是任何函式(lambda、類別方法),並且可以根據頻率進行篩選(例如:每 5 個 epochs)。

對象是誰

它是為想要使用高階函式庫來組織訓練流程,但又不希望像某些其他框架那樣出現「控制反轉」(control inversion)的 PyTorch 使用者所設計的,這讓他們能夠在需要時與在需要的地方使用 Ignite 的工具。

重點特色

  • 靈活的事件系統:將任何函式附加到如 EPOCH_COMPLETED uma l 等事件上,以執行自定義邏輯,而無需繼承複雜的介面。
  • 開箱即用的指標:包含大量預建的指標,適用於分類、回歸及其他任務(例如:Precision、Recall、Accuracy、IoU)。
  • 簡化的迴圈:以引擎系統取代手動的 for/while 迴圈,使程式碼更乾淨、更簡潔。
  • 可擴展的 API:為指標、實驗管理器以及訓練流程組件提供了一個可擴展的框架。

Sources