メインコンテンツへスキップ
このチュートリアルでは、データセットArtifactを作成、トラッキング、使用する方法を説明します。

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

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

wandb.login()

2. run を初期化する

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

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

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

4. データセットをartifactに追加する

artifactにファイルを追加します。一般的なファイルタイプには、モデルやデータセットがあります。次の例では、ローカル環境に保存されている dataset.h5 という名前のデータセットをartifactに追加します。
# artifactのコンテンツにファイルを追加する
artifact.add_file(local_path="dataset.h5")
前のコードスニペットのファイル名 dataset.h5 を、artifact に追加するファイルのパスに置き換えます。

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

W&B の run オブジェクトの wandb.Run.log_artifact() method を使用して、artifact のバージョンを保存すると同時に、その artifact を run の出力 として宣言します。
# artifactのバージョンをW&Bに保存し、このrunの
# 出力としてマークする
run.log_artifact(artifact)
artifact をログすると、デフォルトで 'latest'エイリアスが作成されます。artifact のエイリアスとバージョンの詳細については、それぞれカスタムエイリアスを作成する新しい artifact バージョンを作成するを参照してください。 以上を踏まえると、ここまでのスクリプトは次のようになります。
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. artifact をダウンロードして使用する

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

  # W&B から artifact をクエリし、この run への入力としてマークします
  artifact = run.use_artifact("bicycle-dataset:latest")

  # artifact の内容をダウンロードします
  artifact_dir = artifact.download()
あるいは、Run の外で W&B にすでに保存されているデータをエクスポートしたり、更新したりするには、Public API (wandb.Api) を使用できます。詳細は 外部ファイルをトラッキングする を参照してください。