> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> 既存のW&Bprojectからsweepジョブを作成する方法を説明するチュートリアル。

# チュートリアル: projectからsweepジョブを作成する

このチュートリアルでは、既存のW\&Bprojectからsweepジョブを作成する方法を説明します。ベースライン projectを作成し、ハイパーパラメーターsweepを設定して、トレーニング ジョブを並列実行するエージェントを起動する手順を案内します。

[Fashion MNISTデータセット](https://github.com/zalandoresearch/fashion-mnist)を使用して、画像を分類するPyTorchの畳み込みニューラルネットワークをトレーニングします。必要なコードとデータセットは、[W\&B examplesリポジトリ (PyTorch CNN Fashion)](https://github.com/wandb/examples/tree/master/examples/pytorch/pytorch-cnn-fashion) にあります。

結果はこの[W\&Bダッシュボード](https://app.wandb.ai/carey/pytorch-cnn-fashion)で確認できます。

<div id="create-a-project">
  ## project を作成する
</div>

まず、example モデルを少なくとも 1 回トレーニングして、ベースラインとなる project を作成します。このベースラインは、後続の手順で sweep が設定を適用する対象になります。W\&B examples GitHub リポジトリから、PyTorch MNIST データセットの example モデルをダウンロードします。次に、モデルをトレーニングします。トレーニング スクリプトは `examples/pytorch/pytorch-cnn-fashion` ディレクトリ内にあります。

example モデルをダウンロードしてトレーニングするには、次の手順に従います。

1. リポジトリをクローンします。

   ```bash theme={null}
   git clone https://github.com/wandb/examples.git
   ```

2. example ディレクトリに移動します。

   ```bash theme={null}
   cd examples/pytorch/pytorch-cnn-fashion
   ```

3. トレーニング スクリプトを手動で実行します。

   ```bash theme={null}
   python train.py
   ```

4. 任意: W\&B App のダッシュボードで example を確認します。[example の project ページを表示](https://app.wandb.ai/carey/pytorch-cnn-fashion)。

この最初の run が完了すると、W\&B に、sweep がその後の基盤として利用できるベースラインの project が作成されます。

<div id="create-a-sweep">
  ## sweep を作成する
</div>

ベースラインとなる project を用意したら、その Runs に対して sweep を設定できます。project ページで、プロジェクトのサイドバーにある [**Sweep** タブ](/ja/models/sweeps/visualize-sweep-results) を開き、**Create Sweep** を選択します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/6bJLb4DIApn2yeFO/images/sweeps/sweep1.png?fit=max&auto=format&n=6bJLb4DIApn2yeFO&q=85&s=6c15325303aa5b98068f29a777369689" alt="Sweep タブを開き、Create Sweep ボタンが強調表示された W&B のプロジェクト ページ" width="1589" height="636" data-path="images/sweeps/sweep1.png" />
</Frame>

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

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/6bJLb4DIApn2yeFO/images/sweeps/sweep2.png?fit=max&auto=format&n=6bJLb4DIApn2yeFO&q=85&s=30c533592cfff9f3c462af3349989c4f" alt="ハイパーパラメーターの範囲を示す自動生成された sweep 設定エディター" width="2308" height="1768" data-path="images/sweeps/sweep2.png" />
</Frame>

<div id="launch-agents">
  ## エージェントを起動する
</div>

sweep を設定したら、1 つ以上のエージェントを起動して Runs を実行します。異なるマシンで最大 20 個のエージェントを並列に起動すると、sweep ジョブをより短時間で完了できます。各エージェントは、次に使用するパラメーターのセットを出力します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/6bJLb4DIApn2yeFO/images/sweeps/sweep3.png?fit=max&auto=format&n=6bJLb4DIApn2yeFO&q=85&s=48306deef5c638ed6d15e0067ef11245" alt="次のハイパーパラメーターのセットを出力する sweep エージェントのターミナル出力" width="2082" height="1046" data-path="images/sweeps/sweep3.png" />
</Frame>

これで、各エージェントにまたがるトレーニング ジョブを調整し、結果を W\&B に報告する sweep を実行できるようになりました。次の画像は、サンプルの sweep ジョブが実行中のダッシュボードを示しています。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/6bJLb4DIApn2yeFO/images/sweeps/sweep4.png?fit=max&auto=format&n=6bJLb4DIApn2yeFO&q=85&s=02f4d8a2b179c43c3fd8ab5502d7840e" alt="並列トレーニング Runs 全体のメトリクスをプロットした sweep ダッシュボード" width="3346" height="1512" data-path="images/sweeps/sweep4.png" />
</Frame>

<div id="seed-a-new-sweep-with-existing-runs">
  ## 既存の Runs を使って新しい sweep を初期化する
</div>

以前の結果を出発点として再利用するには、これまでにログした既存の Runs を使って新しい sweep を起動します。

1. project の表を開きます。
2. run 行のチェックボックスをクリックして、その run を選択します。
3. ドロップダウンから新しい sweep を作成します。

これで、sweep がサーバー上に設定されます。1 つ以上のエージェントを起動して、run を開始します。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541/6bJLb4DIApn2yeFO/images/sweeps/tutorial_sweep_runs.png?fit=max&auto=format&n=6bJLb4DIApn2yeFO&q=85&s=c1815fd03e86e2c035a846b8650b618d" alt="行が選択され、ドロップダウンに sweep の作成オプションが表示されている project の Runs 表" width="1786" height="1086" data-path="images/sweeps/tutorial_sweep_runs.png" />
</Frame>

<Note>
  新しい sweep をベイズ sweep として開始すると、選択した Runs はガウシアン過程の初期化にも使用されます。
</Note>
