Skip to main content

クラス wandb.Api

W&B Server のクエリに使用されます。

引数

  • overrides: https://api.wandb.ai 以外の W&B Server を使用している場合は、base_url を設定できます。entityprojectrun のデフォルト値も設定できます。
  • timeout: API リクエストの HTTP タイムアウト (秒) 。指定しない場合は、デフォルトのタイムアウトが使用されます。
  • api_key: 認証に使用する APIキー。指定しない場合は、現在の環境または設定の APIキーが使用されます。APIキーが指定されておらず、環境にも設定されていない場合は、APIキーの入力を求められます。

プロパティ

プロパティ default_entity

デフォルトの W&B entity を返します。

プロパティ user_agent

W&B の公開用ユーザーエージェントを返します。

プロパティ viewer

viewer オブジェクトを返します。

メソッド

method Api.artifact()

1 つのartifactを返します。
引数
  • name: artifactの名。artifactの名はファイルパスのような形式で、少なくともartifactがログされたprojectの名、artifactの名、artifactのバージョンまたはaliasで構成されます。必要に応じて、artifactをログしたentityを接頭辞として追加し、その後にスラッシュ (/) を続けます。名にentityが指定されていない場合は、RunまたはAPI設定のentityが使用されます。
  • type: 取得するartifactのタイプ。
送出される例外
  • ValueError: artifactの名が指定されていない場合。
  • ValueError: artifactのタイプが指定されているものの、取得したartifactのタイプと一致しない場合。
次のコードスニペットでは、“entity”、“project”、“artifact”、“version”、“alias” は、それぞれW&Bのentity、artifactが含まれるprojectの名、artifactの名、artifactのバージョン、artifactのaliasを表すプレースホルダーです。

method Api.artifact_collection()

タイプを指定して、単一の アーティファクト コレクション を返します。 返された ArtifactCollection オブジェクトを使用すると、その collection 内の特定の artifact に関する情報などを取得できます。
引数
  • type_name: 取得する アーティファクト コレクション のタイプ。
  • name: アーティファクト コレクション の名前。必要に応じて、artifact をログした entity をプレフィックスとして先頭に付け、その後にスラッシュを続けます。
次のコードスニペットでは、“type”、“entity”、“project”、および “artifact_name” は、それぞれ collection のタイプ、あなたの W&B entity、artifact が含まれている project 名、および artifact の名前を表す プレースホルダーです。

method Api.artifact_collection_exists()

指定したprojectおよびentity内にアーティファクト コレクションが存在するかどうか。
引数
  • name: アーティファクト コレクションの名。必要に応じて、artifactをログしたentityを接頭辞として付け、その後にスラッシュを続けます。entityまたはprojectが指定されていない場合は、overrideパラメータがあればそこからcollectionを推定します。そうでない場合、entityはユーザー設定から取得され、projectのデフォルトは”uncategorized”になります。
  • type: アーティファクト コレクションのタイプ。
以降のコードスニペットでは、“type”と”collection_name”はそれぞれアーティファクト コレクションのタイプとcollectionの名を指します。

method Api.artifact_collections()

条件に一致する アーティファクト コレクション のコレクションを返します。
引数
  • project_name: フィルター対象の project 名。
  • type_name: フィルター対象の アーティファクト タイプ 名。
  • order: 結果の順序を指定する省略可能な string。接頭辞に ’+’ が付いている場合は昇順 (デフォルト) で並べ替えます。接頭辞に ’-’ が付いている場合は降順で並べ替えます。
  • per_page: クエリのページネーションにおけるページサイズを設定します。通常は変更する必要はありません。
  • start: 過去のクエリを再開するためのページネーション カーソル。前の paginator の .cursor 属性から取得します。

method Api.artifact_exists()

指定したprojectおよびentity内に、artifactのバージョンが存在するかどうかを返します。
引数
  • name: artifactの名。先頭にartifactのentityとprojectを付けます。末尾には、artifactのバージョンまたはaliasをコロン区切りで追加します。entityまたはprojectが指定されていない場合、値が設定されていれば W&B は override パラメーターを使用します。そうでない場合、entity はユーザー設定から取得され、projectは”Uncategorized”に設定されます。
  • type: artifactのタイプ。
以下のコードスニペットでは、“entity”、“project”、“artifact”、“version”、および”alias”は、それぞれあなたの W&B entity、artifact が含まれるprojectの名、artifact の名、artifact のバージョンを表すプレースホルダーです。

method Api.artifact_type()

該当する ArtifactType を返します。
引数
  • type_name: 取得する アーティファクト タイプの名前。
  • project: 指定した場合、絞り込み対象のプロジェクト名またはパス。

method Api.artifact_types()

一致する アーティファクト タイプ のコレクションを返します。
引数
  • project: フィルター対象の project 名またはパス。
  • start: 前回のクエリを再開するためのページネーション カーソル。以前の paginator の .cursor 属性から取得します。

method Api.artifact_versions()

非推奨です。代わりに Api.artifacts(type_name, name) method を使用してください。
引数
  • type_name:
  • name:
  • per_page:

method Api.artifacts()

Artifacts コレクションを返します。
引数
  • type_name: 取得する アーティファクト タイプ。
  • name: アーティファクト のコレクション名。必要に応じて、アーティファクト をログした entity をプレフィックスとして付け、その後にスラッシュを追加します。
  • order: 結果の並び順を指定する省略可能な string。+ をプレフィックスとして付けると昇順 (デフォルト) で並べ替えます。- をプレフィックスとして付けると降順で並べ替えます。
  • per_page: クエリのページネーションにおけるページサイズを設定します。通常は、これを変更する必要はありません。
  • tags: これらのタグをすべて持つ アーティファクト のみを返します。
  • start: 過去のクエリを再開するためのページネーションカーソル。以前の paginator の .cursor 属性から取得します。
以下のコードスニペットでは、“type”、“entity”、“project”、および “artifact_name” は、それぞれ アーティファクト タイプ、W&B entity、アーティファクト がログされた project の名、および アーティファクト の名を表すプレースホルダーです。
paginator.cursor を保存し、 それを start= に渡すと、イテレーションを一時停止し、後で同じ位置から再開できます:

method Api.automation()

パラメーターに一致する オートメーション を 1 件だけ返します。
引数
  • name: 取得する オートメーション の名前。
  • entity: オートメーション の取得対象の entity。
送出される例外
  • ValueError: 検索条件に一致する オートメーション が 0 件、または複数件ある場合。
“my-automation” という名前の既存の オートメーション を取得します:
entity “my-team” から、名前が “other-automation” の既存のオートメーションを取得します:

method Api.automations()

指定したパラメーターに一致するすべての オートメーション を走査するイテレーターを返します。 パラメーターを指定しない場合、返されるイテレーターには、ユーザーがアクセスできるすべての オートメーション が含まれます。
引数
  • entity: オートメーション を取得する対象の entity。
  • name: 取得する オートメーション の名。
  • per_page: 1 ページあたりに取得する オートメーション の数。デフォルトは 50 です。通常、これを変更する必要はありません。
  • start: 過去のクエリを再開するためのページネーションカーソル。以前の paginator の .cursor 属性から取得します。
entity “my-team” の既存の オートメーション をすべて取得します:

method Api.create_automation()

新しい オートメーション を作成します。
引数
  • obj: 作成するオートメーション。
  • fetch_existing: True の場合、競合するオートメーションがすでに存在するときは、エラーを発生させる代わりに既存のオートメーションの取得を試みます。
  • kwargs:
特定の project 内の run がカスタムしきい値を超えるメトリクスをログしたときに Slack 通知を送信する、my-automation という名前の新しいオートメーションを作成します。

method Api.create_custom_chart()

カスタムチャートプリセットを作成し、その ID を返します。
引数
  • entity: チャートを所有する entity (ユーザーまたはチーム)
  • name: チャートプリセットの一意の識別子
  • display_name: UI に表示される、人が理解しやすい名前
  • spec_type: 仕様のタイプ。Vega-Lite v2 の仕様では “vega2” である必要があります。
  • access: チャートのアクセスレベル:
    • “private”: チャートを作成した entity のみがアクセス可能
    • “public”: チャートは公開アクセス可能
  • spec: dict または JSON 文字列として表した Vega/Vega-Lite 仕様
送出される例外
  • wandb.Error: チャートの作成に失敗した場合
  • UnsupportedError: サーバーがカスタムチャートをサポートしていない場合

method Api.create_project()

新しいprojectを作成します。
引数
  • name: 新しいprojectの名前。
  • entity: 新しいprojectの entity。

method Api.create_registry()

新しいレジストリを作成します。
引数
  • name: レジストリの名です。名は組織内で一意である必要があります。
  • visibility: レジストリの公開範囲です。 organization: 組織内の誰でもこのレジストリを表示できます。ロールは後で UI の設定から編集できます。 restricted: UI で招待されたメンバーのみがこのレジストリにアクセスできます。公開共有は無効になります。
  • organization: レジストリの組織です。設定で組織が指定されていない場合、entity が 1 つの組織にのみ属していれば、その組織が entity から取得されます。
  • description: レジストリの説明です。
  • artifact_types: レジストリで受け入れ可能なアーティファクト タイプです。タイプは 128 文字以内で、/ または : を含めることはできません。指定しない場合は、すべてのタイプが受け入れられます。レジストリに追加した許可タイプは後から削除できません。

method Api.create_run()

新しいrunを作成します。
引数
  • run_id: runに割り当てるID。指定しない場合、W&BがランダムなIDを生成します。
  • project: runをログする先のproject。指定しない場合、“Uncategorized” という名前のprojectにrunをログします。
  • entity: projectの所有者であるentity。指定しない場合、デフォルトのentityにrunをログします。

method Api.create_run_queue()

W&B Launch に新しい run キューを作成します。
引数
  • name: 作成するキューの名
  • type: キューで使用するリソースのタイプ。"local-container""local-process""kubernetes""sagemaker"、または "gcp-vertex" のいずれかです。
  • entity: キューを作成する entity の名。None の場合は、設定済みまたはデフォルトの entity を使用します。
  • prioritization_mode: 使用する優先順位付けのバージョン。"V0" または None のいずれかです。
  • config: キューで使用するデフォルトのリソース設定。テンプレート変数を指定するには、Handlebars (例: {{var}}) を使用します。
  • template_variables: config と一緒に使用するテンプレート変数スキーマの辞書。

method Api.create_team()

新しいチームを作成します。 W&B Multi-tenant Cloud を利用しているユーザーは、create_team() を呼び出す前に、W&B UI の User Settings で Default API organization を設定してください。 この設定によって、新しいチームの所属先となる組織が決まります。
引数
  • team: チームの名前
  • admin_username: チームの管理者ユーザーのユーザー名。デフォルトでは現在のユーザーです。

method Api.create_user()

新しいユーザーを作成します。
引数
  • email: ユーザーのメールアドレス。
  • admin: ユーザーをインスタンス全体の管理者に設定します。

method Api.delete_automation()

オートメーション を削除します。
引数
  • obj: 削除対象の オートメーション、またはその ID。

method Api.flush()

ローカルキャッシュをフラッシュします。 api オブジェクトは runs のローカルキャッシュを保持しています。そのため、スクリプトの実行中に run の状態が変わる可能性がある場合は、api.flush() でローカルキャッシュをクリアし、run に関連付けられた最新の値を取得する必要があります。

method Api.from_path()

パスから run、sweep、project、または レポート を返します。
引数
  • path: project、run、sweep、または レポート へのパス
以下に示すコードスニペットでは、“project”、“チーム”、“run_id”、“sweep_id”、 および “report_name” は、それぞれproject、チーム、run ID、 sweep ID、および特定の レポート 名を表すプレースホルダーです。

method Api.integrations()

entity のすべてのインテグレーションを反復するイテレーターを返します。
引数
  • entity: インテグレーションを取得する対象の entity (例: チーム名) 。指定しない場合は、ユーザーのデフォルト entity が使用されます。
  • per_page: 1 ページあたりに取得するインテグレーション数。デフォルトは 50 です。通常、これを変更する必要はありません。
  • start:

method Api.job()

Job オブジェクトを返します。
引数
  • name: ジョブ名。
  • path: ジョブ artifact をダウンロードするルートパス。

method Api.list_jobs()

指定されたentityとprojectに対応するジョブが存在する場合は、その一覧を返します。
引数
  • entity: 一覧表示するジョブのentity。
  • project: 一覧表示するジョブのproject。

method Api.organization()

該当する Organization を返します。
引数
  • name: 組織名。省略した場合、このメソッドは現在のデフォルト組織を推定して返します。

method Api.project()

指定された名前の Project を返します (entity が指定されている場合は、その entityProject) 。
引数
  • name: プロジェクト名。
  • entity: 取得する entity の名前。None の場合は、Api に渡されたデフォルトの entity が使用されます。デフォルトの entity がない場合は、ValueError を送出します。

method Api.projects()

指定したentityのprojectを取得します。
引数
  • entity: 要求されたentityの名です。None の場合は、Api に渡されたデフォルトのentityが使用されます。デフォルトのentityがない場合は、ValueError が発生します。
  • per_page: クエリのページネーションにおけるページサイズを設定します。通常、これを変更する必要はありません。

method Api.queued_run()

パスに基づいて、キューに入っている単一のrunを返します。 entity/project/queue_id/run_queue_item_id 形式のパスを解析します。
引数
  • entity:
  • project:
  • queue_name:
  • run_queue_item_id:
  • project_queue:
  • priority:

method Api.registries()

Registry オブジェクトの遅延イテレーターを返します。 このイテレーターを使用して、組織のレジストリ全体にあるレジストリ、コレクション、 または artifact バージョンを検索したり、フィルターしたりできます。
引数
  • organization: 取得するレジストリの組織。指定しない場合は、ユーザーの Settings で指定された組織を使用します。
  • filter: 遅延レジストリイテレーター内の各オブジェクトに適用する、省略可能な MongoDB スタイルのフィルター。レジストリに対してフィルターできるフィールドは namedescriptioncreated_atupdated_at です。コレクション に対してフィルターできるフィールドは nametagdescriptioncreated_atupdated_at です。バージョンに対してフィルターできるフィールドは tagaliascreated_atupdated_atmetadata です。
  • order: 結果の順序を指定する省略可能な string。接頭辞が + の場合は昇順 (デフォルト) で並べ替えます。接頭辞が - の場合は降順で並べ替えます。
  • per_page: クエリのページネーションにおけるページサイズを設定します。
  • start: 過去のクエリを再開するためのページネーションカーソル。以前の paginator の .cursor 属性から取得します。
名前に “model” を含むすべてのレジストリを検索する
レジストリ内で、名が “my_collection”、タグが “my_tag” のすべてのコレクションを検索します
「my_collection」を含むコレクション名を持ち、エイリアス「best」を持つバージョンがあるレジストリ内のすべてのartifactバージョンを検索します
レジストリ内で、“model” を含み、タグ “prod” またはエイリアス “best” が付いたすべての artifact バージョンを検索します
paginator の .cursor を保存して start= に渡すと、イテレーションを一時停止し、後で同じ位置から再開できます:

method Api.registry()

指定したレジストリ名に対応するレジストリを返します。
引数
  • name: レジストリの名前。wandb-registry- プレフィックスは含みません。
  • organization: レジストリの組織。Settings で組織が設定されていない場合、entity が 1 つの組織にのみ所属していれば、その entity から組織を取得します。
レジストリを取得して更新する

method Api.reports()

指定したprojectパスのレポートを取得します。 注: wandb.Api.reports() API はベータ版のため、今後の version で変更される可能性があります。
引数
  • path: レポートが存在するprojectのパスです。projectを作成した entity をプレフィックスとして指定し、その後にスラッシュを付けます。
  • name: 取得するレポートの名です。
  • per_page: クエリのページネーションにおけるページサイズを設定します。通常、これを変更する必要はありません。

method Api.run()

entity/project/run_id 形式のパスを解析して、1 つの run を返します。
引数
  • path: entity/project/run_id 形式の run へのパス。api.entity が設定されている場合は project/run_id 形式でも指定でき、api.project が設定されている場合は run_id のみでも指定できます。
発生する例外
  • RunNotFoundError: run が見つからない場合、または run データを読み込めない場合。

method Api.run_queue()

entity に対して指定した RunQueue を返します。 run キューの作成方法の詳細については、Api.create_run_queue を参照してください。
引数
  • entity:
  • name:

method Api.runs()

Run オブジェクトを遅延的に反復処理する Runs オブジェクトを返します。 フィルターに使用できるフィールドは次のとおりです。
  • createdAt: run が作成されたタイムスタンプ。 (ISO 8601 形式。例: “2023-01-01T12:00:00Z”)
  • displayName: run の人が読みやすい表示名。 (例: “eager-fox-1”)
  • duration: run の合計実行時間 (秒) 。
  • group: 関連する run をまとめて整理するためのグループ名。
  • host: run が実行されたホスト名。
  • jobType: run のジョブのタイプまたは目的。
  • name: run の一意の識別子。 (例: “a1b2cdef”)
  • state: run の現在の状態。
  • tags: run に関連付けられたタグ。
  • username: run を開始したユーザーのユーザー名
さらに、run の設定や summary メトリクス内の項目でもフィルターできます。たとえば config.experiment_namesummary_metrics.loss などです。 より複雑なフィルタリングには、MongoDB のクエリ演算子を使用できます。詳細は https://docs.mongodb.com/manual/reference/operator/query を参照してください。サポートされる操作は次のとおりです。
  • $and
  • $or
  • $nor
  • $eq
  • $ne
  • $gt
  • $gte
  • $lt
  • $lte
  • $in
  • $nin
  • $exists
  • $regex
引数
  • path: (str) project へのパス。形式は “entity/project” である必要があります
  • filters: (dict) MongoDB クエリ言語を使用して特定の run をクエリするための条件。config.key、summary_metrics.key、state、entity、createdAt などの run のプロパティでフィルターできます。たとえば: {"config.experiment_name": "foo"} は、experiment name の設定エントリが “foo” に設定されている run を検索します
  • order: (str) 順序には created_atheartbeat_atconfig.*.value、または summary_metrics.* を指定できます。先頭に + を付けると昇順 (デフォルト) 、- を付けると降順になります。デフォルトの順序は、古いものから新しいものへの run.created_at です。
  • per_page: (int) クエリのページネーションのページサイズを設定します。
  • include_sweeps: (bool) 各 run の結果で sweep オブジェクトを事前に取得するかどうか。
  • lazy: (bool) より高速なパフォーマンスのために遅延読み込みを使用するかどうか。True (デフォルト) の場合、最初は必要最小限の run メタデータのみが読み込まれます。config、summaryMetrics、systemMetrics などの重いフィールドは、アクセス時にオンデマンドで読み込まれます。最初から完全なデータを取得するには False に設定してください。
注: 正規表現には Google の RE2 構文https://github.com/google/re2/wiki/Syntaxi/Syntax を使用します

method Api.slack_integrations()

entity の Slack インテグレーションのイテレーターを返します。
引数
  • entity: インテグレーションを取得する対象の entity (例: チーム名) 。指定しない場合は、ユーザーのデフォルト entity が使用されます。
  • per_page: 1 ページあたりに取得するインテグレーション数。デフォルトは 50 です。通常、これを変更する必要はありません。
  • start:
チーム “my-team” に登録されているすべての Slack インテグレーションを取得します:
“team-alerts-” で始まるチャンネル名に投稿する Slack インテグレーションのみを検索します:

method Api.sweep()

entity/project/sweep_id 形式のパスを解析して sweep を返します。
引数
  • path: entity/project/sweep_id 形式の sweep へのパス。api.entity が設定されている場合は project/sweep_id 形式でも指定でき、api.project が設定されている場合は sweep_id のみでも指定できます。

method Api.sync_tensorboard()

tfevent ファイルを含むローカルディレクトリを wandb に Sync します。
引数
  • root_dir:
  • run_id:
  • project:
  • entity:

method Api.team()

指定された名前に一致する Team を返します。
引数
  • team: チームの名前。

method Api.update_automation()

既存のオートメーションを更新します。
引数
  • obj: 更新するオートメーション。既存のオートメーションである必要があります。
  • create_missing: True の場合、オートメーションが存在しなければ作成します。
  • kwargs:
Examples
既存のオートメーション (“my-automation”) を無効にし、説明を編集します:
または

method Api.upsert_run_queue()

W&B Launch で run キューをアップサートします。
引数
  • name: 作成するキューの名
  • resource_config: キューに使用する任意のデフォルトのリソース設定。テンプレート変数を指定するには、handlebars (例: {{var}}) を使用します。
  • resource_type: キューに使用するリソースのタイプ。“local-container”、“local-process”、“kubernetes”、“sagemaker”、または “gcp-vertex” のいずれかです。
  • entity: キューを作成する entity の任意の名。None の場合は、設定済みまたはデフォルトの entity を使用します。
  • template_variables: 設定で使用するテンプレート変数スキーマの辞書。
  • external_links: キューで使用する外部リンクの任意の辞書。
  • prioritization_mode: 使用する優先順位付けの任意のバージョン。“V0” または None のいずれかです

method Api.user()

ユーザー名またはメールアドレスからユーザーを返します。 この関数はローカル管理者でのみ使用できます。自分自身のユーザーオブジェクトを取得するには、api.viewer を使用します。
引数
  • username_or_email: 対象ユーザーのユーザー名またはメールアドレス。

method Api.users()

ユーザー名またはメールアドレスの一部をクエリして、該当するすべてのユーザーを返します。 この関数はローカル管理者のみが使用できます。自分自身のユーザーオブジェクトを取得するには、api.viewer を使用します。
引数
  • username_or_email: 検索したいユーザー名またはメールアドレスの接頭辞または接尾辞。

method Api.webhook_integrations()

entity の webhook インテグレーションのイテレーターを返します。
引数
  • entity: インテグレーションを取得する対象の entity (例: チーム名) 。指定しない場合は、ユーザーのデフォルト entity が使用されます。
  • per_page: 1 ページあたりに取得するインテグレーション数。デフォルトは 50 です。通常、これを変更する必要はありません。
  • start:
チーム “my-team” に登録されている webhook インテグレーションをすべて取得します:
https://my-fake-url.com” にPOSTリクエストを送信する webhook インテグレーションのみを検索します: