메인 콘텐츠로 건너뛰기
커스텀 차트를 사용하여 패널에 로드되는 데이터와 해당 시각화를 제어할 수 있습니다.

1. W&B에 데이터 로그하기

먼저, 스크립트에서 데이터를 로그합니다. 하이퍼파라미터와 같이 트레이닝 시작 시점에 설정되는 단일 포인트의 경우 wandb.Run.config를 사용하세요. 시간에 따른 여러 포인트의 경우 wandb.Run.log()를 사용하고, 커스텀 2D 어레이는 wandb.Table()로 로그합니다. 로그되는 키 하나당 최대 10,000개의 데이터 포인트를 로그하는 것을 권장합니다.
with wandb.init() as run: 

  # 데이터의 커스텀 테이블 로그하기
  my_custom_data = [[x1, y1, z1], [x2, y2, z2]]
  run.log(
    {"custom_data_table": wandb.Table(data=my_custom_data, columns=["x", "y", "z"])}
  )
빠른 예제 노트북을 통해 데이터 테이블을 로그해 보세요. 다음 단계에서는 커스텀 차트를 설정해 보겠습니다. 결과 차트가 어떻게 보이는지는 라이브 리포트에서 확인할 수 있습니다.

2. 쿼리 생성하기

시각화할 데이터를 로그했다면, 프로젝트 페이지로 이동하여 + 버튼을 클릭해 새 패널을 추가한 다음 Custom Chart를 선택하세요. 커스텀 차트 데모 워크스페이스에서 과정을 따라하실 수 있습니다.
Blank custom chart

쿼리 추가

  1. summary를 클릭하고 historyTable을 선택하여 Run 기록에서 데이터를 가져오는 새 쿼리를 설정합니다.
  2. wandb.Table()을 로그할 때 사용한 키를 입력합니다. 위의 코드 조각에서는 my_custom_table 이었습니다. 예제 노트북에서 키는 pr_curveroc_curve입니다.

Vega 필드 설정

이제 쿼리가 이 컬럼들을 로드하므로, Vega 필드 드롭다운 메뉴에서 옵션으로 선택할 수 있습니다.
Pulling in columns from the query results to set Vega fields
  • x-axis: runSets_historyTable_r (recall)
  • y-axis: runSets_historyTable_p (precision)
  • color: runSets_historyTable_c (class label)

3. 차트 커스터마이징

차트가 꽤 괜찮아 보이지만, 산점도(scatter plot) 대신 선 그래프(line plot)로 바꾸고 싶습니다. Edit을 클릭하여 이 내장 차트의 Vega 스펙을 변경하세요. 커스텀 차트 데모 워크스페이스에서 함께 진행할 수 있습니다.
Custom chart selection
시각화를 커스터마이징하기 위해 Vega 스펙을 다음과 같이 업데이트했습니다.
  • 플롯, 범례, x축, y축의 제목 추가 (각 필드에 “title” 설정)
  • “mark” 값을 “point”에서 “line”으로 변경
  • 사용하지 않는 “size” 필드 제거
PR curve Vega spec
이를 프로젝트의 다른 곳에서도 사용할 수 있도록 프리셋으로 저장하려면 페이지 상단의 Save as를 클릭하세요. ROC 커브와 함께 완성된 결과는 다음과 같습니다.
PR curve chart

보너스: 복합 히스토그램 (Composite Histograms)

히스토그램은 수치 분포를 시각화하여 대규모 데이터셋을 이해하는 데 도움을 줍니다. 복합 히스토그램은 동일한 빈(bin)에 여러 분포를 표시하여, 서로 다른 모델 간 또는 모델 내의 서로 다른 클래스 간에 두 개 이상의 메트릭을 비교할 수 있게 해줍니다. 예를 들어 주행 장면의 오브젝트를 감지하는 시멘틱 세그멘테이션 모델의 경우, 정확도(accuracy) 최적화와 IOU (intersection over union) 최적화의 효과를 비교하거나, 서로 다른 모델이 자동차(크고 흔한 영역)와 교통 표지판(훨씬 작고 덜 흔한 영역)을 얼마나 잘 감지하는지 알고 싶을 수 있습니다. 데모 Colab에서는 10가지 생물 클래스 중 두 클래스에 대한 신뢰도 점수(confidence scores)를 비교해 볼 수 있습니다.
Composite histogram
나만의 커스텀 복합 히스토그램 패널을 만드는 방법은 다음과 같습니다.
  1. Workspace 또는 Report에서 새 Custom Chart 패널을 생성합니다 (“Custom Chart” 시각화 추가). 우측 상단의 “Edit” 버튼을 눌러 내장 패널 유형 중 하나를 시작점으로 Vega 스펙을 수정합니다.
  2. 해당 내장 Vega 스펙을 저의 복합 히스토그램을 위한 MVP Vega 코드로 교체합니다. Vega 문법을 사용하여 이 Vega 스펙 내에서 메인 제목, 축 제목, 입력 도메인 및 기타 세부 사항을 직접 수정할 수 있습니다 (색상을 바꾸거나 세 번째 히스토그램을 추가할 수도 있습니다 :)
  3. 우측의 쿼리를 수정하여 wandb 로그에서 올바른 데이터를 로드합니다. summaryTable 필드를 추가하고 해당 tableKeyclass_scores로 설정하여 run에 의해 로그된 wandb.Table을 가져옵니다. 이를 통해 드롭다운 메뉴에서 class_scores로 로그된 wandb.Table의 컬럼들을 선택하여 두 개의 히스토그램 빈 세트(red_binsblue_bins)를 채울 수 있습니다. 저의 예제에서는 빨간색 빈에는 animal 클래스 예측 점수를, 파란색 빈에는 plant를 선택했습니다.
  4. 미리보기 렌더링에 나타나는 플롯이 마음에 들 때까지 Vega 스펙과 쿼리를 계속 수정할 수 있습니다. 작업이 끝나면 상단의 Save as를 클릭하고 커스텀 플롯의 이름을 지정하여 재사용할 수 있게 합니다. 그런 다음 Apply from panel library를 클릭하여 플롯을 완성합니다.
아주 짧은 실험의 결과는 다음과 같습니다. 단 1000개의 예제로 1 에포크 동안 트레이닝하면 대부분의 이미지가 식물이 아니라는 점에는 매우 확신하지만, 어떤 이미지가 동물일지에 대해서는 매우 불확실한 모델이 만들어집니다.
Chart configuration
Chart result