W&B に保存されたアーティファクトをダウンロードして使用する
アーティファクトが run の依存関係である場合、追跡された run 入力としてダウンロードするか、リネージ追跡を必要としないワークフローでは直接取得します。W&B が処理方法を把握しているスキームを持つリファレンスは、アーティファクトファイルと同様にダウンロードされます。詳細については、外部ファイルをトラッキングする を参照してください。
- すべてのファイルをダウンロードするには
Artifact.download()を使用します。 - 特定のエントリを取得するには
Artifact.get_entry()を使用し、その後.download()を呼び出してダウンロードします。
- run 入力をトラッキングする
- 直接取得する
- W&B CLI
W&B run の一部としてアーティファクトをダウンロードするには
wandb.Run.use_artifact() を使用します。W&B はアーティファクトを run の入力として記録します。- W&B Python SDK をインポートし、W&B Run を初期化します。
wandb.Run.use_artifact()でアーティファクトのバージョンを取得します。- 返された
Artifactオブジェクトからすべてのファイルまたは特定のファイルをダウンロードします。
アーティファクトを部分的にダウンロードする
接頭辞を指定して、アーティファクトの一部だけをダウンロードすることもできます。path_prefix= (wandb.Artifact.download(path_prefix=)) パラメーターを使用すると、単一のファイルやサブフォルダーの内容をダウンロードできます。
path_prefix= パラメーターにディレクトリを指定します。前のコードスニペットに続けて、次のように記述します。
ダウンロードしたアーティファクトファイルを検証する
アーティファクトをダウンロードしたら、wandb.Artifact.verify() を呼び出して、ディスク上のローカルファイルがアーティファクトのマニフェストと一致していることを確認します。
次の例では、run 内でアーティファクトをダウンロードし、ダウンロードしたファイルを検証します。
wandb.Artifact.verify() は、ローカルファイルのチェックサムを再計算し、アーティファクトの manifest に記録されたチェックサムと比較します。ファイルが欠落または変更されている場合や、アーティファクトに含まれていないファイルがディレクトリ内に存在する場合は、検証が失敗します。
アーティファクト検証に関する考慮事項
-
wandb.Artifact.verify()は参照エントリを検証しません。 -
digest_algorithm="XXH128"で作成されたアーティファクトにwandb.Artifact.verify()を使用するには、W&B Python SDK バージョン 0.29.0 以降が必要です。それより前の SDK バージョンは XXH128 の manifest エントリをサポートしていないため、検証が失敗します。
別の project のアーティファクトを使用する
アーティファクトを参照するには、アーティファクト名とプロジェクト名を指定します。アーティファクト名と entity 名を指定すると、異なる entity のアーティファクトも参照できます。 次のコード例は、現在の W&B run の入力として、別の project のアーティファクトをクエリする方法を示しています。アーティファクトの作成と使用を同時に行う
アーティファクトの作成と使用を同時に行います。アーティファクト オブジェクトを作成し、use_artifact に渡してください。W&B にアーティファクトがまだ存在しない場合は、この時点で作成されます。wandb.Run.use_artifact() API はべき等なので、何度呼び出しても問題ありません。