メインコンテンツへスキップ
このチュートリアルでは、データセットアーティファクトを作成・追跡・利用する方法を説明します。

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

W&B ライブラリをインポートして W&B にログインします。まだの場合は、無料の W&B アカウントを作成する必要があります。
import wandb

wandb.login()

2. run を初期化する

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

3. アーティファクトオブジェクトを作成する

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

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

ファイルをアーティファクトに追加します。よく使われるファイルの種類には、モデルやデータセットがあります。次の例では、ローカルマシンに保存されている 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. まず、新しい run オブジェクトを wandb.init() で初期化します。
  2. 次に、run オブジェクトの wandb.Run.use_artifact() メソッドを使って、どのアーティファクトを使用するかを W&B に指定します。このメソッドはアーティファクトオブジェクトを返します。
  3. 最後に、アーティファクトの wandb.Artifact.download() メソッドを使って、アーティファクトの内容をダウンロードします。
# W&B の 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 に既に保存されているデータをエクスポート(または更新)できます。詳細は、「外部ファイルをトラッキングする」を参照してください。