메인 콘텐츠로 건너뛰기
W&B에 메트릭, 하이퍼파라미터, 테이블, 맞춤형 데이터를 로깅하세요.

CSV 파일을 테이블로 로깅하기

"""
CSV 파일을 W&B에 table로 기록합니다.

다음 항목을 실제 값으로 교체하세요:
- 꺾쇠 괄호로 묶인 값
- pd.read_csv()의 <name>.csv를 실제 CSV 파일 이름으로
"""

import wandb
import pandas as pd

# CSV를 데이터프레임 객체로 읽기 (pandas)
dataframe = pd.read_csv("<name>.csv")

# 데이터프레임을 W&B Table로 변환
table = wandb.Table(dataframe=dataframe)

# 데이터를 기록하기 위해 W&B run 시작
with wandb.init(project="<project>") as run:

    # W&B UI에서 시각화할 수 있도록 table 기록
    run.log({"<table_name>": table})

맞춤형 summary metric 로깅

"""
W&B에 맞춤형 summary 지표를 기록합니다.
"""
import wandb
import random 

with wandb.init(project="<project>") as run:
    # 1에서 10 사이의 임의 정수 값으로 맞춤형 summary 지표를 기록합니다
    run.summary["<metric_name>"] = random.randint(1, 10)

맞춤형 summary 메트릭 로깅

"""
W&B에 맞춤형 summary 메트릭을 기록합니다.

다음을 교체하세요:
- 꺾쇠 괄호로 묶인 값을 실제 값으로 교체
- 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 레지스트리 컬렉션에서 기존 artifact를 다운로드하고 로그합니다.
플레이스홀더를 실제 레지스트리, 컬렉션 이름, entity,
프로젝트, 버전으로 교체하세요.
"""
import wandb

# 버전을 포함한 전체 artifact 이름 구성
registry_name = "<registry_name>"  # 레지스트리 이름 지정
collection_name = "<collection_name>" # 컬렉션 이름 지정
version = 0 # 사용할 artifact 버전 지정
artifact_name_registry = f"wandb-registry-{registry_name}/{collection_name}:v{version}"

# 다른 팀 및 프로젝트에서 W&B run 초기화
with wandb.init(entity="<entity>", project="<project>") as run:
    # 레지스트리에서 모델 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]]을 플롯할 본인의 2D 행 기반 배열로 교체

data에 2D 행 기반 배열을 전달하고(wandb.Table(data=)),
`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]]을 플롯할 본인의 2D 행 기반 배열로 교체

data에 2D 행 기반 배열을 전달하고(wandb.Table(data=)),
`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]]을 플롯할 본인의 2D 행 기반 배열로 교체

data(wandb.Table(data=))에 2D 행 기반 배열을 전달하고,
`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에 summary 지표를 명시적으로 기록합니다.
"""
import wandb
import random 

with wandb.init(project="<project>") as run:
    # 1에서 10 사이의 임의 정수 값으로 맞춤형 summary 지표를 기록합니다
    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

# 두 개의 column과 두 행의 데이터로 table 객체 생성
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에 table log
    run.log({"<table_name>": my_table})