ignite: PyTorch用の、ボイラープレートなループを柔軟なイベント駆動型システムに置き換えるハイレベルなトレーニングおよび評価ライブラリ

ignite: PyTorch用の、ボイラープレートなループを柔軟なイベント駆動型システムに置き換えるハイレベルなトレーニングおよび評価ライブラリ

何を解決するか

PyTorch-Igniteは、PyTorchにおけるニューラルネットワークのトレーニングと評価のプロセスを簡素化します。トレーニングプロセスの完全な制御を維持しながら、トレーニングおよび検証ループのための繰り返しの多いボイラープレートコードを書く必要性を排除します。

仕組み

Igniteは、ユーザーが train_step を定義し、Engine をインスタンス化するエンジンベースのシステムを使用します。このエンジンがループの実行を処理します。機能を追加するには、ユーザーは「イベントハンドラ」をアタッチします。これは、トレーニングプロセスの特定の時点(例:エポックの開始時やイテレーションの完了時)でトリガーされる関数です。これらのハンドラは、任意の関数(ラムダ式、クラスメソッド)であり、頻度(例:5エポックごと)によってフィルタリングすることも可能です。

対象者

他のフレームワークに見られる「制御の反転」を避け、Igniteのツールを必要な時に必要な場所で使えるように、トレーニングパイプラインを整理するためのハイレベルなライブラリを求めるPyTorchユーザー向けに設計されています。

ハイライト

  • 柔軟なイベントシステム: EPOCH_COMPLETED などのイベントに任意の関数をアタッチして、複雑なインターフェースを継承することなくカスタムロジックを実行できます。
  • すぐに使えるメトリクス: 分類、回帰、およびその他のタスク(例:Precision、Recall、Accuracy、IoU)のための幅広い事前構築済みメトリクスが含まれています。
  • 簡素化されたループ: 手動の for/while ループをエンジンシステムに置き換えることで、よりクリーンで簡潔なコードを実現します。
  • 拡張可能なAPI: メトリクス、実験マネージャー、およびトレーニングパイプラインのコンポーネントのための拡張可能なフレームワークを提供します。

Sources