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
- undefinedpytorch/ignite