메인 콘텐츠로 건너뛰기
사용자 지정 차트를 사용하여 패널에 로드하는 데이터와 그 시각화를 제어하세요.

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를 선택하세요. custom charts 데모 워크스페이스에서 예제를 따라 해 볼 수 있습니다.
빈 커스텀 차트

쿼리 추가

  1. summary를 클릭하고 historyTable을 선택하여 실행 기록에서 데이터를 가져오는 새 쿼리를 설정합니다.
  2. wandb.Table()을 로깅한 키를 입력합니다. 위 코드 스니펫에서는 my_custom_table입니다. 예시 노트북에서는 키가 pr_curveroc_curve입니다.

Vega 필드 설정

이제 쿼리에서 이 열들을 불러왔으므로 Vega 필드 드롭다운 메뉴에서 선택할 수 있는 옵션으로 표시됩니다:
쿼리 결과에서 열을 가져와 Vega 필드를 설정하는 예시
  • x-axis: runSets_historyTable_r (recall)
  • y-axis: runSets_historyTable_p (precision)
  • color: runSets_historyTable_c (class label)

3. 차트 커스터마이즈하기

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

보너스: 합성 히스토그램

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