Skip to main content

class wandb.Artifact

データセットとモデルのバージョン管理のための、柔軟で軽量な基本構成要素です。 空の W&B Artifact を作成します。add で始まる method を使って Artifact の内容を 追加します。必要なファイルをすべて Artifact に追加したら、 run.log_artifact() を呼び出してログします。

引数

  • name: artifact の人間が読み取れる名前です。この名前を使うと、W&B App UI 上またはプログラムから特定の artifact を識別できます。use_artifact Public API を使えば、artifact をインタラクティブに参照することもできます。名前には、英字、数字、アンダースコア、ハイフン、ドットを使用できます。名前はプロジェクト内で一意である必要があります。
  • type: artifact のタイプです。artifact のタイプは、Artifacts を整理し、相互に区別するために使用します。英字、数字、アンダースコア、ハイフン、ドットを含む任意の文字列を使用できます。一般的なタイプには datasetmodel があります。artifact を W&B Model Registry にリンクしたい場合は、タイプ文字列に model を含めてください。なお、一部のタイプは内部使用のために予約されており、ユーザーは設定できません。これには jobwandb- で始まるタイプが含まれます。
  • description: artifact の説明です。Model または Dataset Artifacts の場合は、標準化されたチームのモデルカードまたはデータセットカード用のドキュメントを追加します。artifact の説明は、Artifact.description 属性を使ってプログラムから確認することも、W&B App UI で確認することもできます。W&B App では、説明は markdown として表示されます。
  • metadata: artifact に関する追加情報です。metadata はキーと値のペアからなる辞書として指定します。指定できるキーの総数は 100 個までです。
  • incremental: 既存の artifact を変更するには、代わりに Artifact.new_draft() method を使用してください。
  • use_as: 非推奨。
  • storage_region:

プロパティ

property aliases

アーティファクトバージョンに割り当てられた、意味が分かりやすい参照名または識別用の「ニックネーム」の一覧。1 つ以上設定できます。 エイリアスは、プログラムから参照できる変更可能な参照です。 アーティファクトのエイリアスは、W&B App UI またはプログラムから変更できます。 詳しくは、Create new artifact versions を参照してください。

プロパティ collection

この artifact を取得したコレクション。 コレクションは、順序付けられた artifact バージョンのグループです。この artifact がリンク先のコレクションから取得された場合は、そのコレクションを返します。そうでない場合は、その artifact バージョンの元のコレクションを返します。 artifact の元のコレクションは、ソースシーケンスと呼ばれます。

プロパティ commit_hash

この Artifact のコミット時に返されるハッシュ値。

プロパティ created_at

artifact が作成された日時。

property 説明

Artifact の説明。

プロパティ digest

artifact の論理ダイジェスト。 ダイジェストは artifact の内容を表すチェックサムです。artifact のダイジェストが現在の latest バージョンと同じ場合、log_artifact は何もしません。

property entity

artifact collection が属する entity の名。 artifact が link の場合、entity はリンク先の artifact の entity になります。

プロパティ file_count

ファイル数 (参照を含む) 。

プロパティ history_step

このartifactのソース run で history メトリクスがログされた、最も近い step。

プロパティ id

artifact の ID。 artifact がリンクアーティファクトかどうかを示すブールフラグです。 True: artifact はソースアーティファクトへのリンクアーティファクトです。 False: artifact はソースアーティファクトです。

プロパティ linked_artifacts

ソース Artifact にリンクされているすべての Artifact の一覧を返します。 この Artifact がリンク Artifact (artifact.is_link == True) の場合は、空の一覧を返します。 結果は 500 件までに制限されます。

property manifest

Artifact のマニフェスト。 マニフェストにはその内容がすべて一覧表示され、Artifact がログされると変更できません。

プロパティ metadata

ユーザー定義のartifactメタデータ。 artifactに関連付けられた構造化データ。

プロパティ

artifact の名とバージョンです。 {collection}:{alias} 形式の文字列です。artifact がログまたは保存される前に取得した場合、名には alias は含まれません。artifact がリンクの場合、名はリンク先の artifact の名になります。

プロパティ project

artifact collection が属するプロジェクトの名。 artifact が link の場合、プロジェクトはリンク先の artifact のプロジェクトになります。

プロパティ qualified_name

artifact の entity/プロジェクト/名です。 artifact がリンクの場合、qualified name はリンク先の artifact パスの qualified name になります。

プロパティ size

Artifact の合計サイズ (バイト単位) 。 この Artifact がトラッキングしている参照も含まれます。

プロパティ source_artifact

元のログ済み artifact であるソース artifact を返します。 この artifact がソース artifact (artifact.is_link == False) の場合は、自身を返します。

プロパティ source_collection

Artifact のソース collection。 ソース collection は、Artifact がログされた元の collection です。

プロパティ source_entity

ソースartifactのentity名。

プロパティ source_name

ソース artifact の artifact 名とバージョン。 {source_collection}:{alias} 形式の文字列です。artifact が保存される前は、バージョンがまだ確定していないため、名前のみが含まれます。

プロパティ source_project

ソース Artifact のプロジェクト名。

property source_qualified_name

元のartifactの source_entity/source_project/source_name。

プロパティ source_version

ソース artifact のバージョン。 v{number} 形式の文字列。

プロパティ state

Artifact のステータスです。次のいずれかになります: “PENDING”、“COMMITTED”、または “DELETED”。

プロパティ tags

このアーティファクトのバージョンに割り当てられた、1 つ以上のタグのリスト。

プロパティ ttl

artifact の time-to-live (TTL) ポリシー。 TTL ポリシーの期間を過ぎると、Artifacts はその後まもなく削除されます。None に設定すると、その artifact では TTL ポリシーが無効になり、チームのデフォルト TTL が存在していても削除対象としてスケジュールされません。チーム管理者がデフォルト TTL を定義しており、artifact にカスタムポリシーが設定されていない場合、artifact はチームのデフォルトの TTL ポリシーを継承します。

プロパティ type

Artifact のタイプです。一般的なタイプには datasetmodel などがあります。

プロパティ updated_at

Artifact が最後に更新された日時です。

プロパティ url

アーティファクトのURLを生成します。

プロパティ use_as

非推奨。

プロパティ version

Artifact のバージョン。 v{number} 形式の文字列です。link artifact の場合、バージョンはリンク先の collection のものになります。

メソッド

method Artifact.add()

artifact に wandb.WBValue obj を追加します。
引数
  • obj: 追加するオブジェクト。現在サポートされているのは、Bokeh、JoinedTable、PartitionedTable、Table、Classes、ImageMask、BoundingBoxes2D、Audio、Image、Video、Html、Object3D のいずれかです。
  • name: オブジェクトを追加する artifact 内のパス。
  • overwrite: True の場合、該当する場合は同じファイルパスを持つ既存のオブジェクトを上書きします。
例外
  • ArtifactFinalizedError: 現在の artifact バージョンは確定済みのため、変更できません。代わりに新しい artifact バージョンをログしてください。

method Artifact.add_dir()

ローカルディレクトリを artifact に追加します。
引数
  • local_path: ローカルディレクトリのパス。
  • name: artifact 内のサブディレクトリ名。指定した名前は、W&B App UI で artifact の type 配下にネストされて表示されます。デフォルトでは artifact のルートです。
  • skip_cache: True に設定すると、W&B はアップロード中にファイルをキャッシュへコピーまたは移動しません
  • policy: デフォルトは “mutable” です。
    • mutable: アップロード中の破損を防ぐため、ファイルの一時コピーを作成します。
    • immutable: 保護を無効にし、ユーザーがファイルを削除または変更しないことを前提とします。
  • merge: False (デフォルト) の場合、以前の add_dir 呼び出しですでに追加されたファイルの内容が変更されていると ValueError を送出します。True の場合、内容が変更された既存ファイルを上書きします。新しいファイルは常に追加され、既存ファイルが削除されることはありません。ディレクトリ全体を置き換えるには、add_dir(local_path, name=my_prefix) を使用してディレクトリ追加時に名前を指定し、remove(my_prefix) を呼び出してそのディレクトリを削除してから、再度追加してください。
例外
  • ArtifactFinalizedError: 現在のartifactバージョンは確定済みのため、変更できません。代わりに新しいartifactバージョンをログしてください。
  • ValueError: Policy は “mutable” または “immutable” である必要があります

method Artifact.add_file()

ローカルファイルをartifactに追加します。
引数
  • local_path: 追加するファイルのパス。
  • name: 追加するファイルに使用する、artifact内のパス。デフォルトではファイルのベース名が使用されます。
  • is_tmp: true の場合、競合を避けるため、ファイル名は決定論的に変更されます。
  • skip_cache: True の場合、アップロード後にファイルをキャッシュへコピーしません。
  • policy: デフォルトでは “mutable” に設定されます。“mutable” を指定すると、アップロード中の破損を防ぐためにファイルの一時コピーを作成します。“immutable” を指定すると、保護を無効にし、ユーザーがファイルを削除または変更しないことを前提とします。
  • overwrite: True の場合、ファイルがすでに存在していれば上書きします。
Raises
  • ArtifactFinalizedError: 現在のartifactバージョンは確定済みのため、変更できません。代わりに新しいartifactバージョンをログしてください。
  • ValueError: Policy は “mutable” または “immutable” である必要があります

method Artifact.add_reference()

URI で指定した参照を アーティファクト に追加します。 アーティファクト に追加するファイルやディレクトリとは異なり、参照は W&B にアップロードされません。詳細は外部ファイルをトラッキングするを参照してください。 デフォルトでは、次のスキームがサポートされます。
  • http(s): ファイルのサイズとダイジェストは、サーバーから返される Content-Length および ETag レスポンスヘッダーから推定されます。
  • s3: チェックサムとサイズはオブジェクトのメタデータから取得されます。bucket のバージョン管理が有効な場合は、バージョン ID もトラッキングされます。
  • gs: チェックサムとサイズはオブジェクトのメタデータから取得されます。bucket のバージョン管理が有効な場合は、バージョン ID もトラッキングされます。
  • https, *.blob.core.windows.net に一致するドメイン
  • Azure: チェックサムとサイズは blob のメタデータから取得されます。storage account のバージョン管理が有効な場合は、バージョン ID もトラッキングされます。
  • file: チェックサムとサイズはファイルシステムから取得されます。このスキームは、ファイルをトラッキングしたいものの、必ずしもアップロードはしたくない場合に、NFS 共有やその他の外部マウントされたボリューム内のファイルを扱うのに便利です。
その他のスキームでは、ダイジェストは URI のハッシュのみとなり、サイズは空欄のままになります。
引数
  • uri: 追加する参照の URI パス。別の アーティファクト のエントリへの参照を保存するには、Artifact.get_entry が返すオブジェクトを URI パスとして指定することもできます。
  • name: この参照の内容を配置する アーティファクト 内のパス。
  • checksum: 参照 URI にあるリソースのチェックサムを計算するかどうか。自動整合性検証を有効にするため、チェックサムの計算を強く推奨します。チェックサムの計算を無効にすると アーティファクト の作成は高速になりますが、参照ディレクトリは走査されないため、ディレクトリ内のオブジェクトは アーティファクト に保存されません。参照オブジェクトを追加する場合は checksum=False に設定することを推奨します。この場合、新しいバージョンは参照 URI が変更されたときにのみ作成されます。
  • max_objects: ディレクトリまたは bucket store prefix を指す参照を追加する際に対象とするオブジェクトの最大数。デフォルトでは、Amazon S3、GCS、Azure、およびローカルファイルで許可されるオブジェクトの最大数は 10,000,000 です。その他の URI スキームには最大数はありません。
例外
  • ArtifactFinalizedError: 現在の artifact バージョンは確定済みのため、変更できません。代わりに新しい artifact バージョンをログしてください。

method Artifact.checkout()

指定したルートディレクトリを、artifact の内容で置き換えます。 WARNING: artifact に含まれていない root 内のファイルはすべて削除されます。
引数
  • root: この artifact のファイルで置き換える対象のディレクトリ。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.delete()

artifact とそのファイルを削除します。 リンクされた artifact に対して call した場合、削除されるのはリンクのみで、ソース artifact には影響しません。 ソース artifact と collection の間のリンクを削除するには、Artifact.delete() ではなく Artifact.unlink() を使用してください。
引数
  • delete_aliases: True に設定すると、artifact に関連付けられているすべての alias を削除します。False の場合、artifact に既存の alias があると例外を送出します。artifact がリンク先の collection から取得されたものである場合、このパラメーターは無視されます。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.download()

artifact の内容を、指定したルートディレクトリにダウンロードします。 root 内にある既存のファイルは変更されません。root の内容を artifact と完全に一致させたい場合は、download を呼び出す前に root を明示的に削除してください。
引数
  • root: W&B が artifact のファイルを保存するディレクトリ。
  • allow_missing_references: True に設定すると、参照ファイルのダウンロード中に無効な参照パスは無視されます。
  • skip_cache: True に設定すると、ダウンロード時に artifact キャッシュをスキップし、W&B は各ファイルをデフォルトのルートまたは指定したダウンロードディレクトリにダウンロードします。
  • path_prefix: 指定した場合、指定したプレフィックスで始まるパスを持つファイルのみダウンロードされます。UNIX 形式 (フォワードスラッシュ) を使用します。
  • multipart: None (デフォルト) に設定すると、各ファイルのサイズが 2GB を超える場合、multipart ダウンロードを使用して artifact を並列にダウンロードします。True または False に設定すると、ファイルサイズに関係なく、artifact は並列または逐次でダウンロードされます。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.file()

root で指定したディレクトリに、単一ファイルのArtifactをダウンロードします。
引数
  • root: ファイルの保存先となるルートディレクトリ。デフォルトは ./artifacts/self.name/ です。
送出する例外
  • ArtifactNotLoggedError: Artifactがログされていない場合。
  • ValueError: Artifactに複数のファイルが含まれている場合。

method Artifact.files()

この アーティファクト に保存されているすべてのファイルをイテレートします。
引数
  • names: 一覧取得する対象の、アーティファクト のルートからの相対ファイルパス。
  • per_page: リクエストごとに返すファイル数。
  • start: 過去のクエリを再開するためのページネーションカーソル。前回の paginator の .cursor 属性から取得します。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.finalize()

artifact バージョンを確定します。 artifact は特定の artifact バージョンとしてログされるため、いったん確定するとその artifact バージョンは変更できません。artifact にさらにデータをログするには、新しい artifact バージョンを作成してください。artifact は log_artifact でログすると自動的に自動確定されます。

method Artifact.get()

artifact 内の相対 name にある WBValue object を取得します。
引数
  • name: 取得する artifact 内の相対パス名。
発生する例外
  • ArtifactNotLoggedError: artifact がログされていない場合、または run がオフラインの場合。

method Artifact.get_added_local_path_name()

ローカルファイルシステム上のパスで追加されたファイルの artifact 相対名を取得します。
引数
  • local_path: artifact 相対名に変換するローカルパス。

method Artifact.get_entry()

指定した名のエントリを取得します。
引数
  • name: 取得する artifact の相対名
発生する例外
  • ArtifactNotLoggedError: artifact がログされていない場合、または run がオフラインの場合。
  • KeyError: artifact に指定した名のエントリが含まれていない場合。

method Artifact.get_path()

非推奨です。get_entry(name) を使用してください。
引数
  • name:

method Artifact.is_draft()

artifact が未保存かどうかを確認します。

method Artifact.json_encode()

artifactをJSON形式にエンコードしたものを返します。
この artifact をコレクションにリンクします。
引数
  • target_path: コレクションのパス。パスは、プレフィックス “wandb-registry-” に続けて、レジストリ名とコレクション名を指定した wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME} の形式です。
  • aliases: リンクした artifact に 1 つ以上のエイリアスを追加します。“latest” エイリアスは、リンクした artifact のうち最新のものに自動的に適用されます。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.logged_by()

artifact を最初にログした W&B run を取得します。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.new_draft()

このコミット済みartifactと同じ内容を持つ新しいドラフトartifactを作成します。 既存のartifactを変更すると、「段階的artifact」と呼ばれる新しいartifactバージョンが作成されます。返されるartifactは拡張または変更でき、新しいバージョンとしてログできます。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.new_file()

新しい一時ファイルを開き、アーティファクト に追加します。
引数
  • name: アーティファクト に追加する新しいファイルの名。
  • mode: 新しいファイルを開くときに使用するファイルアクセスモード。
  • encoding: 新しいファイルを開くときに使用するエンコーディング。
例外
  • ArtifactFinalizedError: 現在の artifact バージョンは確定済みのため、変更できません。代わりに新しい artifact バージョンをログしてください。

method Artifact.remove()

artifact から項目を削除します。
引数
  • item: 削除する項目です。特定の manifest エントリ、または artifact 相対パスの名を指定できます。item がディレクトリに一致する場合、そのディレクトリ内のすべての項目が削除されます。
Raises
  • ArtifactFinalizedError: 現在の artifact バージョンは確定済みのため、変更できません。代わりに新しい artifact バージョンをログしてください。
  • FileNotFoundError: artifact 内に item が見つからない場合。

method Artifact.save()

artifact に加えた変更をすべて保存します。 現在 run コンテキスト内にいる場合、その run がこの artifact をログします。現在 run コンテキスト内にいない場合は、この artifact をトラッキングするために、タイプが “auto” の run が作成されます。
引数
  • project: run がまだコンテキスト内にない場合に、artifact に使用するプロジェクト。
  • settings: 自動 run の初期化時に使用する設定オブジェクト。主にテストハーネスで使用します。
この artifact が artifact collection にリンクされたメンバーである場合は、この artifact のリンクを解除します。
発生する例外
  • ArtifactNotLoggedError: artifact がログされていない場合。
  • ValueError: artifact がどの collection にもリンクされていない場合。

method Artifact.used_by()

このartifactおよびそれにリンクされたartifactを使用したrunのリストを取得します。
例外
  • ArtifactNotLoggedError: artifact がログされていない場合。

method Artifact.verify()

アーティファクトの内容がマニフェストと一致していることを確認します。 ディレクトリ内のすべてのファイルのチェックサムを計算し、そのチェックサムをアーティファクトのマニフェストと照合します。参照は検証されません。
引数
  • root: 検証するディレクトリです。None の場合、アーティファクトは ’./artifacts/self.name/’ にダウンロードされます。
発生する例外
  • ArtifactNotLoggedError: アーティファクトがログされていない場合。
  • ValueError: 検証に失敗した場合。

method Artifact.wait()

必要に応じて、このArtifactのログ記録が完了するまで待機します。
引数
  • timeout: 待機する時間 (秒) 。