このチュートリアルでは、既存のW&Bprojectからsweepジョブを作成する方法を説明します。ベースライン projectを作成し、ハイパーパラメーターsweepを設定して、トレーニング ジョブを並列実行するエージェントを起動する手順を案内します。
Fashion MNISTデータセットを使用して、画像を分類するPyTorchの畳み込みニューラルネットワークをトレーニングします。必要なコードとデータセットは、W&B examplesリポジトリ (PyTorch CNN Fashion) にあります。
結果はこのW&Bダッシュボードで確認できます。
まず、example モデルを少なくとも 1 回トレーニングして、ベースラインとなる project を作成します。このベースラインは、後続の手順で sweep が設定を適用する対象になります。W&B examples GitHub リポジトリから、PyTorch MNIST データセットの example モデルをダウンロードします。次に、モデルをトレーニングします。トレーニング スクリプトは examples/pytorch/pytorch-cnn-fashion ディレクトリ内にあります。
example モデルをダウンロードしてトレーニングするには、次の手順に従います。
-
リポジトリをクローンします。
-
example ディレクトリに移動します。
-
トレーニング スクリプトを手動で実行します。
-
任意: W&B App のダッシュボードで example を確認します。example の project ページを表示。
この最初の run が完了すると、W&B に、sweep がその後の基盤として利用できるベースラインの project が作成されます。
ベースラインとなる project を用意したら、その Runs に対して sweep を設定できます。project ページで、プロジェクトのサイドバーにある Sweep タブ を開き、Create Sweep を選択します。
自動生成された設定では、完了済みの Runs に基づいて、sweep の対象となる値が提案されます。試したいハイパーパラメーターの範囲を指定できるように、設定を編集してください。sweep を起動すると、W&B がホストする sweep サーバー上で新しいプロセスが開始されます。この一元管理されたサービスが、エージェント (トレーニング ジョブを実行するマシン) を調整します。
sweep を設定したら、1 つ以上のエージェントを起動して Runs を実行します。異なるマシンで最大 20 個のエージェントを並列に起動すると、sweep ジョブをより短時間で完了できます。各エージェントは、次に使用するパラメーターのセットを出力します。
これで、各エージェントにまたがるトレーニング ジョブを調整し、結果を W&B に報告する sweep を実行できるようになりました。次の画像は、サンプルの sweep ジョブが実行中のダッシュボードを示しています。
既存の Runs を使って新しい sweep を初期化する
以前の結果を出発点として再利用するには、これまでにログした既存の Runs を使って新しい sweep を起動します。
- project の表を開きます。
- run 行のチェックボックスをクリックして、その run を選択します。
- ドロップダウンから新しい sweep を作成します。
これで、sweep がサーバー上に設定されます。1 つ以上のエージェントを起動して、run を開始します。
新しい sweep をベイズ sweep として開始すると、選択した Runs はガウシアン過程の初期化にも使用されます。