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

#  thought
init()

export const GitHubLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="github-source-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub source
  </a>;

<GitHubLink url="https://github.com/wandb/wandb/blob/main/wandb/sdk/wandb_init.py" />

### <kbd>function</kbd> `init`

```python theme={null}
init(
    entity: 'str | None' = None,
    project: 'str | None' = None,
    dir: 'StrPath | None' = None,
    id: 'str | None' = None,
    name: 'str | None' = None,
    notes: 'str | None' = None,
    tags: 'Sequence[str] | None' = None,
    config: 'dict[str, Any] | str | None' = None,
    config_exclude_keys: 'list[str] | None' = None,
    config_include_keys: 'list[str] | None' = None,
    allow_val_change: 'bool | None' = None,
    group: 'str | None' = None,
    job_type: 'str | None' = None,
    mode: "Literal['online', 'offline', 'disabled', 'shared'] | None" = None,
    force: 'bool | None' = None,
    reinit: "bool | Literal[None, 'default', 'return_previous', 'finish_previous', 'create_new']" = None,
    resume: "bool | Literal['allow', 'never', 'must', 'auto'] | None" = None,
    resume_from: 'str | None' = None,
    fork_from: 'str | None' = None,
    save_code: 'bool | None' = None,
    tensorboard: 'bool | None' = None,
    sync_tensorboard: 'bool | None' = None,
    monitor_gym: 'bool | None' = None,
    settings: 'Settings | dict[str, Any] | None' = None,
    anonymous: 'DoNotSet' = <object object at 0x100745f80>
) → Run
```

W\&B でトラッキングおよびログ記録を行うための新しい Runs を開始します。

ML トレーニングパイプラインにおいて、トレーニングスクリプトと評価スクリプトの両方の冒頭に `wandb.init()` を追加することで、それぞれのプロセスが W\&B 上で個別の run として記録されます。

`wandb.init()` は、run にデータをログ記録するための新しいバックグラウンドプロセスを生成します。また、デフォルトで [https://wandb.ai](https://wandb.ai) とデータを同期するため、リアルタイムで結果を確認できます。データのログ記録が完了したら、`wandb.Run.finish()` を呼び出して run を終了してください。`run.finish()` を呼び出さなかった場合、スクリプトの終了時に run が終了します。

Run ID には、次の特殊文字を含めることはできません：`/ \ # ? % :`

**引数:**

* `entity`: runs のログが記録されるユーザー名またはチーム名。entity はあらかじめ存在している必要があるため、ログ記録を開始する前に UI でアカウントまたはチームを作成してください。指定しない場合、run はデフォルトの entity に記録されます。デフォルトの entity を変更するには、設定（settings）の "Default team" にある "Default location to create new projects" を更新してください。
* `project`: この run が記録される Projects の名前。指定しない場合、git のルートディレクトリや現在のプログラムファイルを確認するなど、システムに基づいたヒューリスティックな方法でプロジェクト名を推測します。プロジェクト名を推測できない場合、デフォルトで `"uncategorized"` に設定されます。
* `dir`: 実験ログとメタデータファイルが保存されるディレクトリの絶対パス。指定しない場合、デフォルトで `./wandb` ディレクトリーになります。なお、これは `download()` を呼び出した際の Artifacts の保存先には影響しません。
* `id`: run を再開（resume）する際に使用される一意の識別子。プロジェクト内で一意である必要があり、一度削除された run の ID を再利用することはできません。短い説明的な名前には `name` フィールドを、ハイパーパラメーターを保存して run 間で比較するには `config` を使用してください。
* `name`: UI 上で識別しやすくするための、この run の短い表示名。デフォルトでは、テーブルからチャートへの参照を容易にするために、ランダムな2単語の名前が生成されます。チャートの凡例やテーブルでの視認性を高めるため、名前は簡潔に保つことをお勧めします。ハイパーパラメーターの保存には `config` フィールドの使用を推奨します。
* `notes`: Git のコミットメッセージのような、run に関する詳細な説明。将来、この run の目的やセットアップを思い出すのに役立つコンテキストや詳細を記録するために使用します。
* `tags`: UI でこの run にラベルを付けるためのタグのリスト。タグは run の整理や、"baseline"（ベースライン）や "production"（プロダクション）といった一時的な識別子の追加に便利です。UI 上でタグの追加、削除、フィルターを簡単に行うことができます。run を再開する場合、ここで提供されたタグが既存のタグを上書きします。既存のタグを上書きせずに再開された run にタグを追加するには、`run = wandb.init()` の呼び出し後に `run.tags += ("new_tag",)` を使用してください。
* `config`: `wandb.config` を設定します。これは、モデルのハイパーパラメーターやデータの前処理設定など、run への入力パラメータを保存するための辞書形式のオブジェクトです。config は UI のオーバービューページに表示され、これらのパラメータに基づいて runs をグループ化、フィルタリング、ソートできます。キーにはピリオド（`.`）を含めないでください。また、値は 10 MB 未満である必要があります。`argparse.Namespace` や `absl.flags.FLAGS` が提供された場合、キーと値のペアは直接 `wandb.config` に読み込まれます。文字列が提供された場合は YAML ファイルへのパスとして解釈され、その設定値が `wandb.config` に読み込まれます。
* `config_exclude_keys`: `wandb.config` から除外する特定のキーのリスト。
* `config_include_keys`: `wandb.config` に含める特定のキーのリスト。
* `allow_val_change`: 初期設定後に config の値を変更できるかどうかを制御します。デフォルトでは、config の値が上書きされると例外が発生します。学習率のようにトレーニング中に変化する変数を追跡する場合は、代わりに `wandb.log()` の使用を検討してください。デフォルトでは、スクリプト内では `False`、ノートブック環境では `True` です。
* `group`: 個々の runs をより大きな実験の一部として整理するためのグループ名を指定します。これは、クロスバリデーションを行う場合や、異なるテストセットでモデルをトレーニングおよび評価する複数のジョブを実行する場合に便利です。グループ化により、関連する runs を UI 上でまとめて管理でき、結果を統合された実験として簡単に切り替えたり確認したりできます。
* `job_type`: run のジョブタイプを指定します。特に、大きな実験の一部としてグループ内の runs を整理する際に役立ちます。例えば、グループ内で runs に "train"（トレーニング）や "eval"（評価）といったジョブタイプをラベル付けできます。ジョブタイプを定義することで、UI 上で同様の runs を簡単にフィルタリングしてグループ化し、直接比較することが可能になります。
* `mode`: run データの管理方法を以下のオプションで指定します：
  * `"online"` (デフォルト): ネットワーク接続が利用可能な場合に W\&B とのライブ同期を有効にし、可視化をリアルタイムで更新します。
  * `"offline"`: インターネット接続のない環境やオフライン環境に適しています。データはローカルに保存され、後で同期できます。将来の同期を可能にするために、run フォルダを保持するようにしてください。
  * `"disabled"`: すべての W\&B 機能を無効にし、run のメソッドを何もしない（no-ops）状態にします。通常、W\&B の操作をスキップするテストで使用されます。
  * `"shared"`: (実験的な機能)。複数のプロセス（異なるマシン上にある可能性もあります）から同じ run に同時にログを記録することを可能にします。このアプローチでは、プライマリノードと1つ以上のワーカーノードを使用して同じ run にデータをログ記録します。プライマリノードで run を初期化し、各ワーカーノードではプライマリノードで使用された run ID を使用して run を初期化します。
* `force`: スクリプトの実行に W\&B へのログインを必須にするかどうかを決定します。`True` の場合、ユーザーは W\&B にログインしている必要があります。そうでない場合、スクリプトは進行しません。`False` (デフォルト) の場合、ユーザーがログインしていなくてもスクリプトを続行でき、その場合はオフラインモードに切り替わります。
* `reinit`: "reinit" 設定のショートハンドです。run がアクティブな状態での `wandb.init()` の振る舞いを決定します。
* `resume`: 指定された `id` で run を再開する際の振る舞いを制御します。利用可能なオプションは以下の通りです：
  * `"allow"`: 指定された `id` の run が存在すれば最後のステップから再開し、存在しなければ新しい run を作成します。
  * `"never"`: 指定された `id` の run が存在すればエラーを発生させます。見つからない場合は新しい run を作成します。
  * `"must"`: 指定された `id` の run が存在すれば最後のステップから再開します。見つからない場合はエラーを発生させます。
  * `"auto"`: このマシンでクラッシュした直前の run があれば自動的に再開し、そうでなければ新しい run を開始します。
  * `True`: 非推奨です。代わりに `"auto"` を使用してください。
  * `False`: 非推奨です。常に新しい run を開始するには、デフォルトの動作（`resume` を未設定のままにする）を使用してください。`resume` が設定されている場合、`fork_from` と `resume_from` は使用できません。`resume` が未設定の場合、システムは常に新しい run を開始します。
* `resume_from`: 以前の run の特定の時点から run を再開することを指定します。形式は `{run_id}?_step={step}` です。これにより、ある中間ステップでログ記録された履歴を切り捨て、そのステップからログ記録を再開できます。対象の run は同じプロジェクト内にある必要があります。`id` 引数も提供されている場合、`resume_from` 引数が優先されます。`resume`、`resume_from`、`fork_from` は併用できず、一度に1つだけ使用できます。なお、この機能はベータ版であり、将来変更される可能性があります。
* `fork_from`: 以前の run の特定のポイントから新しい run をフォークすることを指定します。形式は `{id}?_step={step}` です。これにより、対象の run の履歴内の指定されたステップからログ記録を再開する新しい run が作成されます。対象の run は現在のプロジェクトの一部である必要があります。`id` 引数も提供されている場合、それは `fork_from` 引数とは異なる必要があります。同じ場合はエラーが発生します。`resume`、`resume_from`、`fork_from` は併用できず、一度に1つだけ使用できます。なお、この機能はベータ版であり、将来変更される可能性があります。
* `save_code`: メインスクリプトまたはノートブックを W\&B に保存することを有効にします。これにより実験の再現性が向上し、UI 上で runs 間のコード比較が可能になります。デフォルトでは無効になっていますが、設定ページで有効に変更できます。
* `tensorboard`: 非推奨です。代わりに `sync_tensorboard` を使用してください。
* `sync_tensorboard`: TensorBoard または TensorBoardX からの W\&B ログの自動同期を有効にし、W\&B UI で表示するための関連イベントファイルを保存します。
* `monitor_gym`: OpenAI Gym を使用している場合に、環境のビデオの自動ログ記録を有効にします。
* `settings`: run の詳細設定を含む辞書または `wandb.Settings` オブジェクトを指定します。

**戻り値:**
`Run` オブジェクト。

**例外:**

* `Error`: run の初期化中に不明なエラーまたは内部エラーが発生した場合。
* `AuthenticationError`: ユーザーが有効な資格情報を提供できなかった場合。
* `CommError`: WandB サーバーとの通信に問題が発生した場合。
* `UsageError`: ユーザーが無効な引数を提供した場合。
* `KeyboardInterrupt`: ユーザーが run を中断した場合。

**例:**
`wandb.init()` は `Run` オブジェクトを返します。この run オブジェクトを使用して、データのログ記録、Artifacts の保存、および run のライフサイクルの管理を行います。

```python theme={null}
import wandb

# コンフィグの設定
config = {"lr": 0.01, "batch_size": 32}
with wandb.init(config=config) as run:
    # accuracy と loss を run にログ記録する
    acc = 0.95  # 例: 精度
    loss = 0.05  # 例: 損失
    run.log({"accuracy": acc, "loss": loss})
```
