본문으로 건너뛰기

사용자 정의 차트

사용자 정의 차트를 사용하여 현재 기본 UI에서는 불가능한 차트를 생성하세요. 임의의 데이터 테이블을 로그하고 원하는 대로 정확하게 시각화하세요. Vega의 힘을 빌려 글꼴, 색상, 툴팁의 세부 사항을 제어하세요.

vega.github.io/vega에서 지원하는 차트

작동 방식

  1. 데이터 로그하기: 스크립트에서 config 및 요약 데이터를 W&B와 함께 실행할 때와 같이 평소처럼 로그합니다. 특정 시간에 로그된 여러 값의 목록을 시각화하려면 사용자 정의 wandb.Table을 사용하세요.
  2. 차트 사용자 정의하기: GraphQL 쿼리로 로그된 모든 데이터를 가져옵니다. 쿼리 결과를 Vega를 사용하여 시각화하세요. Vega는 강력한 시각화 문법입니다.
  3. 차트 로그하기: 스크립트에서 자신만의 프리셋을 wandb.plot_table()로 호출하세요.

스크립트에서 차트 로그하기

내장 프리셋

이 프리셋들은 내장된 wandb.plot 메소드를 가지고 있어 스크립트에서 직접 차트를 로그하고 UI에서 정확한 시각화를 빠르게 볼 수 있게 합니다.

wandb.plot.line()

임의의 축 x 및 y에서 연결되고 정렬된 점(x,y) 목록인 사용자 정의 선 그래프를 로그합니다.

data = [[x, y] for (x, y) in zip(x_values, y_values)]
table = wandb.Table(data=data, columns=["x", "y"])
wandb.log(
{
"my_custom_plot_id": wandb.plot.line(
table, "x", "y", title="사용자 정의 Y vs X 선 그래프"
)
}
)

두 차원에서 곡선을 로그하는 데 이를 사용할 수 있습니다. 두 값 목록을 서로 대비하여 플로팅하는 경우, 목록의 값 수가 정확히 일치해야 합니다(즉, 각 점은 x와 y를 가져야 합니다).

앱에서 보기 →

코드 실행하기 →

사용자 정의 프리셋

기본 프리셋을 수정하거나 새 프리셋을 생성한 다음 차트를 저장하세요. 스크립트에서 직접 사용자 정의 프리셋에 데이터를 로그하려면 차트 ID를 사용하세요.

# 플롯할 열이 있는 테이블 생성
table = wandb.Table(data=data, columns=["step", "height"])

# 테이블의 열을 차트의 필드에 매핑
fields = {"x": "step", "value": "height"}

# 테이블을 사용하여 새 사용자 정의 차트 프리셋 채우기
# 자신의 저장된 차트 프리셋을 사용하려면 vega_spec_name 변경
my_custom_chart = wandb.plot_table(
vega_spec_name="carey/new_chart",
data_table=table,
fields=fields,
)

코드 실행하기 →

데이터 로그하기

스크립트에서 로그할 수 있는 데이터 유형은 다음과 같습니다:

  • Config: 실험의 초기 설정(독립 변수). 이는 트레이닝 시작 시 wandb.config에 로그된 키로 명명된 모든 필드를 포함합니다(예: wandb.config.learning_rate = 0.0001)
  • Summary: 트레이닝 중에 로그된 단일 값(결과 또는 종속 변수), 예를 들어 wandb.log({"val_acc" : 0.8}). wandb.log()를 통해 트레이닝 중에 이 키에 여러 번 작성하는 경우, 요약은 해당 키의 최종 값으로 설정됩니다.
  • History: 로그된 스칼라의 전체 시계열은 history 필드를 통해 쿼리 가능
  • summaryTable: 여러 값을 로그할 필요가 있는 경우 wandb.Table()을 사용하여 해당 데이터를 저장한 다음 사용자 정의 패널에서 쿼리하세요.
  • historyTable: 히스토리 데이터를 보려면 사용자 정의 차트 패널에서 historyTable을 쿼리하세요. wandb.Table()을 호출하거나 사용자 정의 차트를 로그할 때마다 해당 단계의 히스토리에 새 테이블을 생성합니다.

사용자 정의 테이블 로그하는 방법

wandb.Table()을 사용하여 데이터를 2D 배열로 로그하세요. 일반적으로 이 테이블의 각 행은 하나의 데이터 포인트를 나타내며, 각 열은 각 데이터 포인트에 대해 플로팅하려는 관련 필드/차원을 나타냅니다. 사용자 정의 패널을 구성할 때, wandb.log()에 전달된 명명된 키("custom_data_table" 아래)를 통해 전체 테이블에 엑세스할 수 있으며, 개별 필드는 열 이름("x", "y", "z")을 통해 엑세스할 수 있습니다. 실험 중 여러 시간 단계에서 테이블을 로그할 수 있습니다. 각 테이블의 최대 크기는 10,000행입니다.

Google Colab에서 시도해보세요 →

# 데이터의 사용자 정의 테이블 로그하기
my_custom_data = [[x1, y1, z1], [x2, y2, z2]]
wandb.log(
{"custom_data_table": wandb.Table(data=my_custom_data, columns=["x", "y", "z"])}
)

차트 사용자 정의하기

시작하려면 새 사용자 정의 차트를 추가한 다음 쿼리를 편집하여 보이는 실행에서 데이터를 선택하세요. 쿼리는 GraphQL을 사용하여 실행의 config, summary 및 history 필드에서 데이터를 가져옵니다.

새 사용자 정의 차트 추가 후 쿼리 편집

사용자 정의 시각화

오른쪽 상단에서 차트를 선택하여 기본 프리셋으로 시작하세요. 다음으로, 쿼리에서 가져온 데이터를 차트의 해당 필드에 매핑하는 차트 필드를 선택하세요. 여기에는 쿼리에서 가져온 메트릭을 선택한 다음 아래의 막대 차트 필드에 매핑하는 예가 있습니다.

프로젝트에서 실행 간 정확도를 보여주는 사용자 정의 막대 차트 생성

Vega 편집 방법

패널 상단에서 편집을 클릭하여 Vega 편집 모드로 들어

Was this page helpful?👍👎