メインコンテンツへスキップ
このチュートリアルでは、データセットの Artifacts を作成、追跡、および使用する方法について説明します。

1. W&B にログインする

W&B ライブラリをインポートし、W&B にログインします。まだアカウントをお持ちでない場合は、無料の W&B アカウントに登録する必要があります。
import wandb

wandb.login()

2. run を初期化する

wandb.init() を使用して run を初期化します。これにより、データを同期してログに記録するためのバックグラウンドプロセスが生成されます。プロジェクト名とジョブタイプを指定します。
# W&B Run を作成します。この例ではデータセットの Artifacts を作成する方法を
# 示すため、job_type に 'dataset' を指定します。
with wandb.init(project="artifacts-example", job_type="upload-dataset") as run:
    # ここにコードを記述します

3. Artifact オブジェクトを作成する

wandb.Artifact() を使用して Artifact オブジェクトを作成します。name パラメータにアーティファクトの名前を、type パラメータにファイルタイプの説明をそれぞれ指定します。 例えば、次のコードスニペットは、‘bicycle-dataset’ という名前で ‘dataset’ というラベル(タイプ)を持つアーティファクトを作成する方法を示しています。
artifact = wandb.Artifact(name="bicycle-dataset", type="dataset")
アーティファクトの構築方法に関する詳細は、Artifacts の構築 を参照してください。

4. アーティファクトにデータセットを追加する

アーティファクトにファイルを追加します。一般的なファイルタイプには、Models や Datasets が含まれます。次の例では、マシンにローカルに保存されている dataset.h5 という名前のデータセットをアーティファクトに追加しています。
# アーティファクトのコンテンツにファイルを追加します
artifact.add_file(local_path="dataset.h5")
上記のコードスニペットのファイル名 dataset.h5 を、アーティファクトに追加したいファイルへのパスに置き換えてください。

5. データセットをログに記録する

W&B の run オブジェクトの wandb.Run.log_artifact() メソッドを使用して、アーティファクトのバージョンを保存し、そのアーティファクトを run の出力 として宣言します。
# アーティファクトのバージョンを W&B に保存し、
# この run の出力としてマークします
run.log_artifact(artifact)
アーティファクトをログに記録すると、デフォルトで 'latest' エイリアス が作成されます。アーティファクトのエイリアスとバージョンに関する詳細は、それぞれ カスタムエイリアスの作成 および 新しいアーティファクトバージョンの作成 を参照してください。 これらをまとめると、ここまでのスクリプトは次のようになります。
import wandb

wandb.login()

with wandb.init(project="artifacts-example", job_type="upload-dataset") as run:
    artifact = wandb.Artifact(name="bicycle-dataset", type="dataset")
    artifact.add_file(local_path="dataset.h5")
    run.log_artifact(artifact)

6. アーティファクトをダウンロードして使用する

以下のコード例は、W&B サーバーにログを記録して保存したアーティファクトを使用するための手順を示しています。
  1. まず、wandb.init() で新しい run オブジェクトを初期化します。
  2. 次に、run オブジェクトの wandb.Run.use_artifact() メソッドを使用して、使用するアーティファクトを W&B に伝えます。これによりアーティファクトオブジェクトが返されます。
  3. 第三に、アーティファクトの wandb.Artifact.download() メソッドを使用して、アーティファクトの内容をダウンロードします。
# W&B Run を作成します。ここではトレーニングの追跡にこの run を
# 使用するため、'type' に 'training' を指定します。
with wandb.init(project="artifacts-example", job_type="training") as run:

  # W&B にアーティファクトを照会し、この run の入力としてマークします
  artifact = run.use_artifact("bicycle-dataset:latest")

  # アーティファクトのコンテンツをダウンロードします
  artifact_dir = artifact.download()
あるいは、Public API (wandb.Api) を使用して、Run の外部で既に W&B に保存されているデータをエクスポート(または更新)することもできます。詳細は 外部ファイルの追跡 を参照してください。