メインコンテンツへスキップ
このチュートリアルでは、既存のW&Bprojectからsweepジョブを作成する方法を説明します。ベースライン projectを作成し、ハイパーパラメーターsweepを設定して、トレーニング ジョブを並列実行するエージェントを起動する手順を案内します。 Fashion MNISTデータセットを使用して、画像を分類するPyTorchの畳み込みニューラルネットワークをトレーニングします。必要なコードとデータセットは、W&B examplesリポジトリ (PyTorch CNN Fashion) にあります。 結果はこのW&Bダッシュボードで確認できます。

project を作成する

まず、example モデルを少なくとも 1 回トレーニングして、ベースラインとなる project を作成します。このベースラインは、後続の手順で sweep が設定を適用する対象になります。W&B examples GitHub リポジトリから、PyTorch MNIST データセットの example モデルをダウンロードします。次に、モデルをトレーニングします。トレーニング スクリプトは examples/pytorch/pytorch-cnn-fashion ディレクトリ内にあります。 example モデルをダウンロードしてトレーニングするには、次の手順に従います。
  1. リポジトリをクローンします。
  2. example ディレクトリに移動します。
  3. トレーニング スクリプトを手動で実行します。
  4. 任意: W&B App のダッシュボードで example を確認します。example の project ページを表示
この最初の run が完了すると、W&B に、sweep がその後の基盤として利用できるベースラインの project が作成されます。

sweep を作成する

ベースラインとなる project を用意したら、その Runs に対して sweep を設定できます。project ページで、プロジェクトのサイドバーにある Sweep タブ を開き、Create Sweep を選択します。
Sweep タブを開き、Create Sweep ボタンが強調表示された W&B のプロジェクト ページ
自動生成された設定では、完了済みの Runs に基づいて、sweep の対象となる値が提案されます。試したいハイパーパラメーターの範囲を指定できるように、設定を編集してください。sweep を起動すると、W&B がホストする sweep サーバー上で新しいプロセスが開始されます。この一元管理されたサービスが、エージェント (トレーニング ジョブを実行するマシン) を調整します。
ハイパーパラメーターの範囲を示す自動生成された sweep 設定エディター

エージェントを起動する

sweep を設定したら、1 つ以上のエージェントを起動して Runs を実行します。異なるマシンで最大 20 個のエージェントを並列に起動すると、sweep ジョブをより短時間で完了できます。各エージェントは、次に使用するパラメーターのセットを出力します。
次のハイパーパラメーターのセットを出力する sweep エージェントのターミナル出力
これで、各エージェントにまたがるトレーニング ジョブを調整し、結果を W&B に報告する sweep を実行できるようになりました。次の画像は、サンプルの sweep ジョブが実行中のダッシュボードを示しています。
並列トレーニング Runs 全体のメトリクスをプロットした sweep ダッシュボード

既存の Runs を使って新しい sweep を初期化する

以前の結果を出発点として再利用するには、これまでにログした既存の Runs を使って新しい sweep を起動します。
  1. project の表を開きます。
  2. run 行のチェックボックスをクリックして、その run を選択します。
  3. ドロップダウンから新しい sweep を作成します。
これで、sweep がサーバー上に設定されます。1 つ以上のエージェントを起動して、run を開始します。
行が選択され、ドロップダウンに sweep の作成オプションが表示されている project の Runs 表
新しい sweep をベイズ sweep として開始すると、選択した Runs はガウシアン過程の初期化にも使用されます。