> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-feat-cli-docs-generator.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# チュートリアル: Sweep を定義、初期化、実行する

> スイープ クイックスタートでは、スイープを定義、初期化、実行する方法を示します。主な手順は4つあります。

このページでは、スイープを定義、初期化、および実行する方法を示します。主に4つのステップがあります。

1. [トレーニングコードをセットアップする](#set-up-your-training-code)
2. [スイープ設定で探索空間を定義する](#define-the-search-space-with-a-sweep-configuration)
3. [スイープを初期化する](#initialize-the-sweep)
4. [スイープエージェントを開始する](#start-the-sweep)

以下のコードを Jupyter ノートブックまたは Python スクリプトにコピーして貼り付けてください。

```python theme={null}
# W&B Python ライブラリをインポートして W&B にログインする
import wandb

wandb.login()

# 1: 目的/トレーニング関数を定義する
def objective(config):
    score = config.x**3 + config.y
    return score

def main():
    wandb.init(project="my-first-sweep")
    score = objective(wandb.config)
    wandb.log({"score": score})

# 2: 探索空間を定義する
sweep_configuration = {
    "method": "random",
    "metric": {"goal": "minimize", "name": "score"},
    "parameters": {
        "x": {"max": 0.1, "min": 0.01},
        "y": {"values": [1, 3, 7]},
    },
}

# 3: スイープを開始する
sweep_id = wandb.sweep(sweep=sweep_configuration, project="my-first-sweep")

wandb.agent(sweep_id, function=main, count=10)
```

以下のセクションでは、そのコードサンプルの各ステップを分解し、説明します。

## トレーニングコードをセットアップする

`wandb.config` からハイパーパラメーターの値を取り込み、それを使用してモデルをトレーニングし、メトリクスを返すトレーニング関数を定義します。

オプションとして、W\&B Run の出力を保存したいプロジェクトの名前（[`wandb.init`](/ja/models/ref/python/init)内のproject パラメータ）を指定します。プロジェクトが指定されていない場合、Run は「Uncategorized」プロジェクトに入ります。

<Note>
  スイープとrunは同じプロジェクト内にある必要があります。したがって、W\&Bを初期化するときに指定する名前は、スイープを初期化するときに指定するプロジェクトの名前と一致する必要があります。
</Note>

```python theme={null}
# 1: 目的/トレーニング関数を定義する
def objective(config):
    score = config.x**3 + config.y
    return score


def main():
    wandb.init(project="my-first-sweep")
    score = objective(wandb.config)
    wandb.log({"score": score})
```

## スイープ設定で探索空間を定義する

探索するハイパーパラメーターを辞書で指定します。設定オプションについては、[スイープ設定を定義する](/ja/models/sweeps/define-sweep-configuration/)を参照してください。

次の例では、ランダム検索（`'method':'random'`）を使用するスイープ設定を示しています。スイープは、バッチサイズ、エポック、および学習率の設定にリストされているランダムな値を無作為に選択します。

W\&Bは、`"goal": "minimize"`が関連付けられているときに `metric` キーで指定されたメトリクスを最小化します。この場合、W\&Bはメトリクス `score`（`"name": "score"`）を最小化するように最適化します。

```python theme={null}
# 2: 探索空間を定義する
sweep_configuration = {
    "method": "random",
    "metric": {"goal": "minimize", "name": "score"},
    "parameters": {
        "x": {"max": 0.1, "min": 0.01},
        "y": {"values": [1, 3, 7]},
    },
}
```

## スイープを初期化する

W\&Bは、クラウド（標準）またはローカル（ローカル）で複数のマシンを横断してスイープを管理するために、*Sweep Controller* を使用します。Sweep Controller についての詳細は、[ローカルで探索と停止のアルゴリズムを確認する](/ja/models/sweeps/local-controller/)を参照してください。

スイープを初期化すると、スイープ識別番号が返されます。

```python theme={null}
sweep_id = wandb.sweep(sweep=sweep_configuration, project="my-first-sweep")
```

スイープの初期化に関する詳細は、[スイープを初期化する](/ja/models/sweeps/walkthrough/#%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%97%E3%82%92%E5%88%9D%E6%9C%9F%E5%8C%96%E3%81%99%E3%82%8B)を参照してください。

## スイープを開始する

スイープを開始するには、[`wandb.agent`](/ja/models/ref/python/agent) APIコールを使用します。

```python theme={null}
wandb.agent(sweep_id, function=main, count=10)
```

## 結果を視覚化する（オプション）

プロジェクトを開くと、W\&Bアプリダッシュボードでライブ結果を確認できます。数回のクリックで豊富なインタラクティブグラフを構築します。例えば、[並列座標プロット](/ja/models/app/features/panels/parallel-coordinates/)、[パラメータの重要度解析](/ja/models/app/features/panels/parameter-importance/)、および[その他](/ja/models/app/features/panels/)です。

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-feat-cli-docs-generator/H38wUKSUimeO8IEX/images/sweeps/quickstart_dashboard_example.png?fit=max&auto=format&n=H38wUKSUimeO8IEX&q=85&s=0803fb5f9fce60ac147f8c99c6016062" alt="Sweeps ダッシュボード例" width="4302" height="3048" data-path="images/sweeps/quickstart_dashboard_example.png" />
</Frame>

結果の視覚化方法に関する詳細は、[スイープ結果を視覚化する](/ja/models/sweeps/visualize-sweep-results/)を参照してください。サンプルのダッシュボードについては、この[スイーププロジェクト](https://wandb.ai/anmolmann/pytorch-cnn-fashion/sweeps/pmqye6u3)を参照してください。

## エージェントを停止する（オプション）

ターミナルで `Ctrl+C` を押して、現在のランを停止します。もう一度押すと、エージェントが終了します。
