メインコンテンツへスキップ
W&B にメトリクス、ハイパーパラメーター、表、カスタムデータをログします。

CSVファイルを表としてログする

"""
CSVファイルをW&Bに表としてログします。

以下を置き換えてください:
- 山括弧で囲まれた値を実際の値に変更する
- pd.read_csv() 内の <name>.csv をCSVファイル名に変更する
"""

import wandb
import pandas as pd

# CSVをDataFrameオブジェクト(pandas)として読み込む
dataframe = pd.read_csv("<name>.csv")

# DataFrameをW&B Tableに変換する
table = wandb.Table(dataframe=dataframe)

# データをログするためにW&B runを開始する
with wandb.init(project="<project>") as run:

    # W&B UIで可視化するために表をログする
    run.log({"<table_name>": table})

カスタム Summary メトリクスをログする

"""
カスタムサマリーメトリクスをW&Bにログする。
"""
import wandb
import random 

with wandb.init(project="<project>") as run:
    # 1から10のランダムな整数値でカスタムサマリーメトリクスをログする
    run.summary["<metric_name>"] = random.randint(1, 10)

カスタム Summary メトリクスをログする

"""
カスタム summary メトリクスを W&B にログします。

以下を置き換えてください:
- 山括弧で囲まれた値を実際の値に置き換えてください
- run.define_metric() 内の <summary_function_a> と <summary_function_b> を
    "max"、"min"、"last"、"mean"、"best"、"none" のいずれかに置き換えてください。
"""
import wandb
import random

with wandb.init() as run:
    # metric_name_a に対する summary_function_a と summary_function_b の summary 値
    run.define_metric(name="<metric_name_a>", summary="<summary_function_a>")
    run.define_metric(name="<metric_name_a>", summary="<summary_function_b>")

    for i in range(10):
        log_dict = {
            "metric_name_a": random.uniform(0, 1 / (i + 1)),
        }
        run.log(log_dict)

レジストリコレクションから既存のartifactをダウンロードしてログする

"""
W&B registryコレクションから既存のartifactをダウンロードしてログする。
プレースホルダーを実際のregistry名、コレクション名、entity、
プロジェクト、バージョンに置き換えること。
"""
import wandb

# バージョンを含む完全なartifact名を構築する
registry_name = "<registry_name>"  # registry名を指定する
collection_name = "<collection_name>" # コレクション名を指定する
version = 0 # 使用するartifactのバージョンを指定する
artifact_name_registry = f"wandb-registry-{registry_name}/{collection_name}:v{version}"

# 別のTeamsとプロジェクトでW&B runを初期化する
with wandb.init(entity="<entity>", project="<project>") as run:
    # registryからモデルのartifactを使用する
    registry_model = run.use_artifact(artifact_or_name=artifact_name_registry)

    # モデルをローカルディレクトリにダウンロードする
    local_model_path = registry_model.download()

ヒストグラムプロットをログする

"""
ヒストグラムプロットを W&B にログします。

以下を置き換えてください:
- 山括弧で囲まれた値を実際の値に置き換えてください
- wandb.Table(data=) 内の [[1, 2], [2, 3]] をプロットする実際の2次元行指向配列に置き換えてください

data (wandb.Table(data=)) に2次元行指向配列を渡し、
列名は `columns` パラメーターで指定してください。
"""
import wandb

# 新しい run を開始する
with wandb.init(entity="<entity>", project="<project>") as run:
        
    # プロットする列を含む表を作成する
    table = wandb.Table(data=[[1, 2], [2, 3]] , columns=["<a_column>", "<b_column>"])

    # 表を使用してさまざまなカスタムチャートにデータを入力する
    histogram = wandb.plot.histogram(table, value='<b_column>', title='Histogram')

    # カスタム表をログする(UI のカスタマイズ可能なチャートに表示されます)
    run.log({'histogram_1': histogram})

runを初期化し、ハイパーパラメーターをログする

"""W&B の run を初期化し、ハイパーパラメーターをログします。"""
import wandb

config = {
    "learning_rate": 0.01,
    "batch_size": 32,
    "optimizer": "adam",
}

with wandb.init(project="<project>", config=config) as run:
    # トレーニングとロギングのコードをここに記述する
    pass

折れ線グラフをログする

"""
折れ線グラフをW&Bにログします。

以下を置き換えてください:
- 山括弧で囲まれた値を独自の値に変更する
- wandb.Table(data=) 内の [[1, 2], [2, 3]] をプロットする独自の2次元行指向配列に変更する

data (wandb.Table(data=)) に2次元行指向配列を渡し、
列名は `columns` パラメーターで指定します。

列名は `wandb.plot.line()` プロット関数の x および y パラメーターと一致する必要があります。
"""
import wandb

# 新しいrunを開始する
with wandb.init(entity="<entity>", project="<project>") as run:
        
    # プロットする列を含む表を作成する
    table = wandb.Table(data=[[1, 2], [2, 3]], columns=["<column_a>", "<column_b>"])

    # 表を使用してさまざまなカスタムチャートにデータを入力する
    line_plot = wandb.plot.line(table, x='<column_a>', y='<column_b>', title='<title>')
    
    # カスタム表をログする(UIのカスタマイズ可能なチャートに表示されます)
    run.log({'<line_plot>': line_plot})

run を初期化し、メトリクスをログする

"""W&B の run を初期化してメトリクスをログします。"""
import wandb

with wandb.init(project="<project>") as run:
    # トレーニングとログのコードをここに記述

    # メトリクスをログする例
    run.log({"accuracy": 0.95})

散布図をログする

"""
散布図をW&Bにログします。

以下を置き換えてください:
- 山括弧で囲まれた値を実際の値に置き換える
- wandb.Table(data=) 内の [[1, 2], [2, 3]] をプロットする実際の2次元行指向配列に置き換える

data (wandb.Table(data=)) に2次元行指向配列を渡し、
列名は `columns` パラメーターで指定します。

列名は `wandb.plot.scatter()` プロット関数の x および y パラメーターと一致している必要があります。
"""
import wandb

# 新しいrunを開始する
with wandb.init(entity="<entity>", project="<project>") as run:
        
    # プロットする列を含む表を作成する
    table = wandb.Table(data=[[1, 2], [2, 3]], columns=["<a_column>", "<b_column>"])

    # 表を使用してさまざまなカスタムチャートにデータを入力する
    scatter = wandb.plot.scatter(table, x='<a_column>', y='<b_column>', title='<title>')

    # カスタム表をログする(UIのカスタマイズ可能なチャートに表示されます)
    run.log({'scatter_1': scatter})

summary メトリクスを明示的にログする

"""
サマリーメトリクスをW&Bに明示的にログする。
"""
import wandb
import random 

with wandb.init(project="<project>") as run:
    # 1から10のランダムな整数値でカスタムサマリーメトリクスをログする
    run.summary["<metric_name>"] = random.randint(1, 10)

表をログする

"""
Log a table to W&B.

Replace: 
- values enclosed in angle brackets with your own
- [[1, 2], [2, 3]] in wandb.Table(data=) with your own 2D row-oriented array of values to log
"""
import wandb

# 2列2行のデータを持つ表オブジェクトを作成する
my_table = wandb.Table(
    columns=["<a_column>", "<b_column>"],
    data=[[1, 2], [2, 3]],
    log_mode="<log_mode>"
    )

# 新しい run を開始する
with wandb.init(entity="<entity>", project="<project>") as run:
    # 表を W&B にログする
    run.log({"<table_name>": my_table})