アーティファクトをダウンロードして使用する
less than a minute
すでに 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 オブジェクトが返されます。次のコードスニペットでは、'bike-dataset'
というアーティファクトを 'latest'
というエイリアスで指定しています。
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 を参照してください。
まず、W&B SDK をインポートします。次に、Public API クラスからアーティファクトを作成します。エンティティ、プロジェクト、アーティファクト、およびエイリアスをそのアーティファクトに関連付けます。
import wandb
api = wandb.Api()
artifact = api.artifact("entity/project/artifact:alias")
戻されたオブジェクトを使って、アーティファクトの内容をダウンロードします。
artifact.download()
アーティファクトの内容を特定のディレクトリーにダウンロードするために root
パラメータにパスをオプションで渡すことができます。詳細については、API Reference Guide を参照してください。
wandb artifact get
コマンドを使用して、W&B サーバーからアーティファクトをダウンロードします。
$ wandb artifact get project/artifact:alias --root mnist/
アーティファクトの一部をダウンロード
プレフィックスを基にアーティファクトの一部をダウンロードすることができます。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 を参照してください。
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! If you have further feedback, please let us know.
Sorry to hear that. Please tell us how we can improve.