Documentation Index
Fetch the complete documentation index at: https://translations.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
W&B Python 라이브러리를 사용해 CSV 파일을 로깅하고 W&B Dashboard에서 시각화할 수 있습니다. W&B Dashboard는 머신러닝 모델 결과를 구성하고 시각화하는 중앙 허브입니다. 이는 W&B에 로깅되지 않은 이전 머신러닝 실험 정보가 담긴 CSV 파일이 있거나, 데이터셋이 담긴 CSV 파일이 있는 경우 특히 유용합니다.
CSV 파일 내용을 더 쉽게 재사용할 수 있도록 W&B 아티팩트를 사용할 것을 권장합니다.
- 시작하려면 먼저 CSV 파일을 가져옵니다. 다음 코드 스니펫에서
iris.csv 파일 이름을 사용 중인 CSV 파일 이름으로 바꾸세요:
import wandb
import pandas as pd
# CSV를 새 DataFrame으로 읽기
new_iris_dataframe = pd.read_csv("iris.csv")
- W&B Dashboards를 활용하기 위해 CSV 파일을 W&B Table로 변환합니다.
# DataFrame을 W&B Table로 변환
iris_table = wandb.Table(dataframe=new_iris_dataframe)
- 다음으로 W&B 아티팩트를 생성하고 해당 아티팩트에 테이블을 추가합니다.
# 행 제한을 200000으로 늘리고 재사용을 용이하게 하기 위해
# 테이블을 아티팩트에 추가합니다
iris_table_artifact = wandb.Artifact("iris_artifact", type="dataset")
iris_table_artifact.add(iris_table, "iris_table")
# 데이터를 보존하기 위해 아티팩트 내에 원본 csv 파일을 기록합니다
iris_table_artifact.add_file("iris.csv")
W&B 아티팩트에 대한 자세한 내용은 Artifacts 장을 참조하세요.
- 마지막으로, 새로운 W&B 실행을 시작하고
wandb.init으로 W&B에 추적 및 로그를 기록하세요:
# 데이터를 기록할 W&B 실행 시작
with wandb.init(project="tables-walkthrough") as run:
# 실행으로 시각화할 테이블 기록...
run.log({"iris": iris_table})
# 사용 가능한 행 제한을 늘리기 위해 아티팩트로도 기록!
run.log_artifact(iris_table_artifact)
wandb.init() API는 실행에 데이터를 기록하기 위해 새로운 백그라운드 프로세스를 생성하고, 기본적으로 데이터를 wandb.ai로 동기화합니다. W&B Workspace Dashboard에서 실시간 시각화를 확인할 수 있습니다. 아래 이미지는 예시 코드 스니펫의 출력 결과를 보여줍니다.
앞에서 설명한 코드 스니펫을 모두 포함한 전체 스크립트는 아래와 같습니다:
import wandb
import pandas as pd
# CSV를 새 DataFrame으로 읽기
new_iris_dataframe = pd.read_csv("iris.csv")
# DataFrame을 W&B Table로 변환
iris_table = wandb.Table(dataframe=new_iris_dataframe)
# 행 제한을 200000으로 늘리고 재사용을 용이하게 하기 위해
# 테이블을 아티팩트에 추가
iris_table_artifact = wandb.Artifact("iris_artifact", type="dataset")
iris_table_artifact.add(iris_table, "iris_table")
# 데이터를 보존하기 위해 아티팩트 내에 원본 csv 파일 로깅
iris_table_artifact.add_file("iris.csv")
# 데이터를 로깅하기 위해 W&B 실행 시작
with wandb.init(project="tables-walkthrough") as run:
# 실행으로 시각화하기 위해 테이블 로깅...
run.log({"iris": iris_table})
# 사용 가능한 행 제한을 늘리기 위해 아티팩트로도 로깅!
run.log_artifact(iris_table_artifact)
경우에 따라 실험 세부 정보가 CSV 파일에 포함되어 있을 수 있습니다. 이러한 CSV 파일에는 일반적으로 다음과 같은 정보가 포함됩니다:
| Experiment | Model Name | Notes | Tags | Num Layers | Final Train Acc | Final Val Acc | Training Losses |
|---|
| Experiment 1 | mnist-300-layers | 학습 데이터에 과적합이 심함 | [latest] | 300 | 0.99 | 0.90 | [0.55, 0.45, 0.44, 0.42, 0.40, 0.39] |
| Experiment 2 | mnist-250-layers | 현재까지의 최고 모델 | [prod, best] | 250 | 0.95 | 0.96 | [0.55, 0.45, 0.44, 0.42, 0.40, 0.39] |
| Experiment 3 | mnist-200-layers | 기준 모델보다 성능이 떨어짐. 디버깅 필요 | [debug] | 200 | 0.76 | 0.70 | [0.55, 0.45, 0.44, 0.42, 0.40, 0.39] |
| … | … | … | … | … | … | … | |
| Experiment N | mnist-X-layers | NOTES | … | … | … | … | […, …] |
W&B는 실험 정보가 담긴 CSV 파일을 받아 W&B Experiment 실행으로 변환할 수 있습니다. 다음 코드 스니펫과 스크립트에서는 실험 CSV 파일을 가져와 로깅하는 방법을 보여줍니다:
- 시작하려면 먼저 CSV 파일을 읽어 Pandas DataFrame으로 변환합니다.
"experiments.csv"를 사용자의 CSV 파일 이름으로 바꾸십시오:
import wandb
import pandas as pd
FILENAME = "experiments.csv"
loaded_experiment_df = pd.read_csv(FILENAME)
PROJECT_NAME = "Converted Experiments"
EXPERIMENT_NAME_COL = "Experiment"
NOTES_COL = "Notes"
TAGS_COL = "Tags"
CONFIG_COLS = ["Num Layers"]
SUMMARY_COLS = ["Final Train Acc", "Final Val Acc"]
METRIC_COLS = ["Training Losses"]
# 작업하기 편하도록 Pandas DataFrame 형식 변환
for i, row in loaded_experiment_df.iterrows():
run_name = row[EXPERIMENT_NAME_COL]
notes = row[NOTES_COL]
tags = row[TAGS_COL]
config = {}
for config_col in CONFIG_COLS:
config[config_col] = row[config_col]
metrics = {}
for metric_col in METRIC_COLS:
metrics[metric_col] = row[metric_col]
summaries = {}
for summary_col in SUMMARY_COLS:
summaries[summary_col] = row[summary_col]
-
다음으로, 새 W&B 실행을 시작해
wandb.init()으로 W&B에 추적하고 로그를 기록하세요:
with wandb.init(
project=PROJECT_NAME, name=run_name, tags=tags, notes=notes, config=config
) as run:
실행이 진행되는 동안, 지표의 각 값을 모두 로깅해 두면 W&B에서 조회, 쿼리, 분석에 활용할 수 있습니다. 이를 위해 run.log() 명령을 사용하세요:
define_metric API를 사용해 실행의 결과를 정의하는 최종 요약 지표를 필요에 따라 로깅할 수 있습니다. 다음 예제에서는 run.summary.update()를 사용해 실행에 요약 지표를 추가합니다:
run.summary.update(summaries)
요약 메트릭에 대한 자세한 내용은 Log Summary Metrics 문서를 참조하세요.
아래는 위의 샘플 테이블을 W&B Dashboard로 변환하는 전체 예제 스크립트입니다:
FILENAME = "experiments.csv"
loaded_experiment_df = pd.read_csv(FILENAME)
PROJECT_NAME = "Converted Experiments"
EXPERIMENT_NAME_COL = "Experiment"
NOTES_COL = "Notes"
TAGS_COL = "Tags"
CONFIG_COLS = ["Num Layers"]
SUMMARY_COLS = ["Final Train Acc", "Final Val Acc"]
METRIC_COLS = ["Training Losses"]
for i, row in loaded_experiment_df.iterrows():
run_name = row[EXPERIMENT_NAME_COL]
notes = row[NOTES_COL]
tags = row[TAGS_COL]
config = {}
for config_col in CONFIG_COLS:
config[config_col] = row[config_col]
metrics = {}
for metric_col in METRIC_COLS:
metrics[metric_col] = row[metric_col]
summaries = {}
for summary_col in SUMMARY_COLS:
summaries[summary_col] = row[summary_col]
with wandb.init(
project=PROJECT_NAME, name=run_name, tags=tags, notes=notes, config=config
) as run:
for key, val in metrics.items():
if isinstance(val, list):
for _val in val:
run.log({key: _val})
else:
run.log({key: val})
run.summary.update(summaries)