メインコンテンツまでスキップ

Download and use artifacts

W&B サーバーに既に保存されているアーティファクトをダウンロードして使用するか、アーティファクトオブジェクトを作成して必要に応じて重複排除のために渡してください。

注記

閲覧専用のシートを持っているチームメンバーはアーティファクトをダウンロードできません。

W&B に保存されているアーティファクトをダウンロードして使用する

W&B に保存されているアーティファクトを W&B Run の内外で使用してダウンロードします。Public API (wandb.Api) を使って、既に W&B に保存されているデータのエクスポート (または更新) を行います。詳細については、W&B Public API Reference guide を参照してください。

まず、W&B Python SDK をインポートします。次に、W&B Run を作成します。

import wandb

run = wandb.init(project="<example>", job_type="<job-type>")

use_artifact メソッドを使って使用したいアーティファクトを指定します。これにより、run オブジェクトが返されます。以下のコードスニペットでは、latest というエイリアスを持つ 'bike-dataset' というアーティファクトを指定しています。

artifact = run.use_artifact("bike-dataset:latest")

返されるオブジェクトを使って、アーティファクトのすべての内容をダウンロードします。

datadir = artifact.download()

オプションで、root パラメータにパスを渡して、アーティファクトの内容を特定のディレクトリーにダウンロードすることもできます。詳細については、Python SDK Reference Guide を参照してください。

get_path メソッドを使って、一部のファイルのみをダウンロードすることもできます。

path = artifact.get_path(name)

これは、name というパスにあるファイルのみを取得します。次のメソッドを持つ Entry オブジェクトを返します。

  • Entry.download: パス name にあるアーティファクトからファイルをダウンロードする
  • Entry.ref: add_reference がエントリを参照として保存した場合、その URI を返す

W&B が処理方法を知っているスキームを持つ参照は、アーティファクトファイルと同じようにダウンロードされます。詳細については、Track external files を参照してください。

アーティファクトを部分的にダウンロードする

path_prefix パラメータを使用して、プレフィックスに基づいてアーティファクトの一部をダウンロードすることができます。単一のファイルやサブフォルダーの内容をダウンロードできます。

artifact = run.use_artifact("bike-dataset:latest")

artifact.download(path_prefix="bike.png") # bike.png のみをダウンロードする

別の方法として、特定のディレクトリーからファイルをダウンロードすることもできます。

artifact.download(path_prefix="images/bikes/") # images/bikes ディレクトリー内のファイルをダウンロードする

別のプロジェクトからアーティファクトを使用する

アーティファクトの名前とプロジェクト名を指定して参照します。エンティティ名と共にアーティファクトの名前を指定して、他のエンティティのアーティファクトを参照することもできます。

以下のコード例は、他のプロジェクトからアーティファクトをクエリし、現在の W&B run の入力として使用する方法を示しています。

import wandb

run = wandb.init(project="<example>", job_type="<job-type>")
# 他のプロジェクトからアーティファクトを W&B にクエリして、
# この run の入力としてマークします。
artifact = run.use_artifact("my-project/artifact:alias")

# 他のエンティティのアーティファクトを使って、
# この run の入力としてマークします。
artifact = run.use_artifact("my-entity/my-project/artifact:alias")

同時にアーティファクトを作成して使用する

同時にアーティファクトを作成して使用します。アーティファクトオブジェクトを作成し、それを use_artifact に渡します。これにより、W&B にアーティファクトがまだ存在しない場合には作成されます。use_artifact API は冪等であるため、必要なだけ何度でも呼び出すことができます。

import wandb

artifact = wandb.Artifact("reference model")
artifact.add_file("model.h5")
run.use_artifact(artifact)

アーティファクトの作成について詳しくは、Construct an artifact を参照してください。

Was this page helpful?👍👎