このチュートリアルでは、既存の W&B プロジェクトからスイープジョブを作成する方法を説明します。Fashion MNIST dataset を使用して、PyTorch の畳み込みニューラルネットワークで画像を分類するモデルを学習します。必要なコードとデータセットは、W&B examples repository (PyTorch CNN Fashion) にあります。
結果はこの W&B ダッシュボード で確認できます。
まずベースラインを作成します。W&B examples の GitHub リポジトリから PyTorch MNIST データセットのサンプルモデルをダウンロードします。次に、そのモデルを学習します。学習スクリプトは examples/pytorch/pytorch-cnn-fashion ディレクトリ内にあります。
- このリポジトリをクローンします
git clone https://github.com/wandb/examples.git
- このサンプルのディレクトリに移動します
cd examples/pytorch/pytorch-cnn-fashion
- run を手動で実行します
python train.py
任意で、W&B App UI のダッシュボードから、このサンプルの run を確認します。
サンプルのプロジェクトページを表示 →
プロジェクトのページから、プロジェクトのサイドバーにある Sweep タブ を開き、Create Sweep をクリックします。
自動生成された設定は、これまでに完了した run をもとにスイープ対象とする値を推定します。試したいハイパーパラメータの範囲を指定できるように、この設定を編集します。スイープを起動すると、ホスト型の W&B sweep サーバー上で新しいプロセスが立ち上がります。この集中管理されたサービスが、学習ジョブを実行しているマシン(エージェント)を統括・調整します。
次に、ローカルでエージェントを起動します。作業を分散してスイープジョブをより早く完了させたい場合は、最大 20 個までのエージェントを異なるマシン上で並列に起動できます。エージェントは、次に試すパラメータセットを出力します。
これでスイープが実行中です。次の画像は、サンプルのスイープジョブが実行されているときのダッシュボードの様子を示しています。 サンプルのプロジェクトページを見る →
以前にログした既存のrunを使って、新しいスイープを開始します。
- プロジェクトのテーブルを開きます。
- テーブル左側のチェックボックスで、使用したいrunを選択します。
- ドロップダウンをクリックして、新しいスイープを作成します。
これでスイープがサーバー上にセットアップされます。あとは1つ以上のエージェントを起動して、runを実行します。
新しいスイープをベイズスイープとして開始すると、選択したrunはガウス過程のシードとしても使用されます。