This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Line plots

메트릭 을 시각화하고, 축을 사용자 정의하고, 플롯에서 여러 라인을 비교합니다.

라인 플롯은 wandb.log() 로 시간에 따른 메트릭을 플롯할 때 기본적으로 표시됩니다. 차트 설정을 사용하여 동일한 플롯에서 여러 라인을 비교하고, 사용자 정의 축을 계산하고, 레이블 이름을 바꿀 수 있습니다.

라인 플롯 설정 편집

이 섹션에서는 개별 라인 플롯 패널, 섹션의 모든 라인 플롯 패널 또는 워크스페이스의 모든 라인 플롯 패널에 대한 설정을 편집하는 방법을 보여줍니다.

개별 라인 플롯

라인 플롯의 개별 설정은 섹션 또는 워크스페이스에 대한 라인 플롯 설정을 재정의합니다. 라인 플롯을 사용자 정의하려면:

  1. 마우스를 패널 위로 이동한 다음 기어 아이콘을 클릭합니다.
  2. 나타나는 모달 내에서 탭을 선택하여 설정을 편집합니다.
  3. 적용을 클릭합니다.

라인 플롯 설정

라인 플롯에 대해 이러한 설정을 구성할 수 있습니다.

날짜: 플롯의 데이터 표시 세부 정보를 구성합니다.

  • X: X축에 사용할 값을 선택합니다 (기본값은 Step). x축을 Relative Time으로 변경하거나 W&B로 기록하는 값을 기반으로 사용자 정의 축을 선택할 수 있습니다.
    • Relative Time (Wall) 은 프로세스가 시작된 이후의 시계 시간이므로 run을 시작하고 하루 후에 다시 시작하여 기록한 경우 24시간으로 플롯됩니다.
    • Relative Time (Process) 는 실행 중인 프로세스 내부의 시간이므로 run을 시작하고 10초 동안 실행한 다음 하루 후에 다시 시작하면 해당 지점이 10초로 플롯됩니다.
    • Wall Time은 그래프에서 첫 번째 run이 시작된 이후 경과된 시간 (분) 입니다.
    • Step은 기본적으로 wandb.log()가 호출될 때마다 증가하며 모델에서 기록한 트레이닝 스텝 수를 반영해야 합니다.
  • Y: 시간에 따라 변하는 메트릭 및 하이퍼파라미터를 포함하여 기록된 값에서 하나 이상의 y축을 선택합니다.
  • X축Y축 최소 및 최대값 (선택 사항).
  • 포인트 집계 방식. Random sampling (기본값) 또는 Full fidelity. Sampling을 참조하십시오.
  • Smoothing: 라인 플롯의 Smoothing을 변경합니다. 기본값은 Time weighted EMA입니다. 다른 값으로는 No smoothing, Running averageGaussian이 있습니다.
  • Outliers: 기본 플롯 최소 및 최대 스케일에서 이상값을 제외하도록 스케일을 재조정합니다.
  • 최대 run 또는 그룹 수: 이 숫자를 늘려 라인 플롯에 더 많은 라인을 한 번에 표시합니다. 기본값은 10개의 run입니다. 사용 가능한 run이 10개 이상이지만 차트가 보이는 수를 제한하는 경우 차트 상단에 “Showing first 10 runs"라는 메시지가 표시됩니다.
  • 차트 유형: 라인 플롯, 영역 플롯 및 백분율 영역 플롯 간에 변경합니다.

Grouping: 플롯에서 run을 그룹화하고 집계할지 여부와 방법을 구성합니다.

  • Group by: 열을 선택하면 해당 열에서 동일한 값을 가진 모든 run이 함께 그룹화됩니다.
  • Agg: 집계— 그래프의 라인 값. 옵션은 그룹의 평균, 중앙값, 최소값 및 최대값입니다.

차트: 패널, X축 및 Y축의 제목과 -축을 지정하고 범례를 숨기거나 표시하고 위치를 구성합니다.

범례: 패널의 범례 모양을 사용자 정의합니다 (활성화된 경우).

  • 범례: 플롯의 각 라인에 대한 범례의 필드입니다.
  • 범례 템플릿: 범례에 대한 완전히 사용자 정의 가능한 템플릿을 정의하여 라인 플롯 상단에 표시할 텍스트와 변수 및 마우스를 플롯 위로 이동할 때 나타나는 범례를 정확하게 지정합니다.

Expressions: 사용자 정의 계산된 표현식을 패널에 추가합니다.

  • Y축 표현식: 계산된 메트릭을 그래프에 추가합니다. 기록된 메트릭과 하이퍼파라미터와 같은 구성 값을 사용하여 사용자 정의 라인을 계산할 수 있습니다.
  • X축 표현식: 사용자 정의 표현식을 사용하여 계산된 값을 사용하도록 x축의 스케일을 재조정합니다. 유용한 변수에는 기본 x축에 대한**_step**이 포함되며 요약 값을 참조하는 구문은 ${summary:value}입니다.

섹션의 모든 라인 플롯

섹션의 모든 라인 플롯에 대한 기본 설정을 사용자 정의하려면 라인 플롯에 대한 워크스페이스 설정을 재정의합니다.

  1. 섹션의 기어 아이콘을 클릭하여 설정을 엽니다.
  2. 나타나는 모달 내에서 데이터 또는 표시 기본 설정 탭을 선택하여 섹션의 기본 설정을 구성합니다. 각 데이터 설정에 대한 자세한 내용은 이전 섹션인 개별 라인 플롯을 참조하십시오. 각 표시 기본 설정에 대한 자세한 내용은 섹션 레이아웃 구성을 참조하십시오.

워크스페이스의 모든 라인 플롯

워크스페이스의 모든 라인 플롯에 대한 기본 설정을 사용자 정의하려면:

  1. 워크스페이스의 설정을 클릭합니다. 여기에는 설정 레이블이 있는 기어가 있습니다.
  2. 라인 플롯을 클릭합니다.
  3. 나타나는 모달 내에서 데이터 또는 표시 기본 설정 탭을 선택하여 워크스페이스의 기본 설정을 구성합니다.
    • 데이터 설정에 대한 자세한 내용은 이전 섹션인 개별 라인 플롯을 참조하십시오.

    • 표시 기본 설정 섹션에 대한 자세한 내용은 워크스페이스 표시 기본 설정을 참조하십시오. 워크스페이스 수준에서 라인 플롯에 대한 기본 확대/축소 동작을 구성할 수 있습니다. 이 설정은 일치하는 x축 키가 있는 라인 플롯에서 확대/축소를 동기화할지 여부를 제어합니다. 기본적으로 비활성화되어 있습니다.

플롯에서 평균값 시각화

여러 개의 다른 Experiments가 있고 플롯에서 해당 값의 평균을 보려면 테이블에서 그룹화 기능을 사용할 수 있습니다. run 테이블 위에서 “그룹"을 클릭하고 “모두"를 선택하여 그래프에 평균값을 표시합니다.

평균화하기 전의 그래프 모양은 다음과 같습니다.

다음 이미지는 그룹화된 라인을 사용하여 run에서 평균값을 나타내는 그래프를 보여줍니다.

플롯에서 NaN 값 시각화

wandb.log를 사용하여 라인 플롯에 PyTorch 텐서를 포함한 NaN 값을 플롯할 수도 있습니다. 예:

wandb.log({"test": [..., float("nan"), ...]})

하나의 차트에서 두 개의 메트릭 비교

  1. 페이지 오른쪽 상단에서 패널 추가 버튼을 선택합니다.
  2. 나타나는 왼쪽 패널에서 평가 드롭다운을 확장합니다.
  3. Run comparer를 선택합니다.

라인 플롯의 색상 변경

경우에 따라 run의 기본 색상이 비교에 도움이 되지 않을 수 있습니다. 이를 극복하기 위해 wandb는 색상을 수동으로 변경할 수 있는 두 가지 인스턴스를 제공합니다.

각 run은 초기화 시 기본적으로 임의의 색상이 지정됩니다.

Run에 지정된 임의의 색상

색상 중 하나를 클릭하면 색상 팔레트가 나타나고 여기에서 원하는 색상을 수동으로 선택할 수 있습니다.

색상 팔레트
  1. 설정을 편집할 패널 위로 마우스를 가져갑니다.
  2. 나타나는 연필 아이콘을 선택합니다.
  3. 범례 탭을 선택합니다.

다른 x축에서 시각화

experiment가 소요된 절대 시간을 보거나 experiment가 실행된 날짜를 보려면 x축을 전환할 수 있습니다. 다음은 단계를 상대 시간으로 전환한 다음 벽 시간으로 전환하는 예입니다.

영역 플롯

라인 플롯 설정의 고급 탭에서 다른 플롯 스타일을 클릭하여 영역 플롯 또는 백분율 영역 플롯을 얻습니다.

확대/축소

사각형을 클릭하고 드래그하여 수직 및 수평으로 동시에 확대/축소합니다. 그러면 x축 및 y축 확대/축소가 변경됩니다.

차트 범례 숨기기

이 간단한 토글로 라인 플롯에서 범례를 끕니다.

1 - Line plot reference

X축

Selecting X-Axis

W&B.log 로 기록한 값이 항상 숫자로 기록되는 한, 선 그래프의 X축을 원하는 값으로 설정할 수 있습니다.

Y축 변수

wandb.log 로 기록한 값이 숫자, 숫자 배열 또는 숫자 히스토그램인 경우 Y축 변수를 원하는 값으로 설정할 수 있습니다. 변수에 대해 1500개 이상의 포인트를 기록한 경우 W&B 는 1500개 포인트로 샘플링합니다.

X 범위 및 Y 범위

플롯의 X 및 Y의 최대값과 최소값을 변경할 수 있습니다.

X 범위의 기본값은 X축의 최소값에서 최대값까지입니다.

Y 범위의 기본값은 메트릭의 최소값과 0부터 메트릭의 최대값까지입니다.

최대 Runs/그룹

기본적으로 10개의 run 또는 run 그룹만 플롯됩니다. Runs은 run 테이블 또는 run 세트의 맨 위에서 가져오므로 run 테이블 또는 run 세트를 정렬하면 표시되는 run 을 변경할 수 있습니다.

범례

차트의 범례를 제어하여 생성 시간 또는 run 을 생성한 user 와 같은 run 의 모든 config 값과 메타 데이터를 표시할 수 있습니다.

예시:

${run:displayName} - ${config:dropout} 은 각 run 에 대한 범례 이름을 royal-sweep - 0.5 와 같이 만듭니다. 여기서 royal-sweep 은 run 이름이고 0.5dropout 이라는 config 파라미터입니다.

[[ ]] 안에 값을 설정하여 차트 위로 마우스를 가져갈 때 십자선에 특정 포인트 값을 표시할 수 있습니다. 예를 들어 \[\[ $x: $y ($original) ]] 은 “2: 3 (2.9)” 와 같이 표시됩니다.

[[ ]] 내에서 지원되는 값은 다음과 같습니다.

의미
${x} X 값
${y} Y 값 (스무딩 조정 포함)
${original} Y 값 (스무딩 조정 미포함)
${mean} 그룹화된 run 의 평균
${stddev} 그룹화된 run 의 표준 편차
${min} 그룹화된 run 의 최소값
${max} 그룹화된 run 의 최대값
${percent} 합계의 백분율 (누적 영역 차트의 경우)

그룹화

그룹화를 켜서 모든 run 을 집계하거나 개별 변수별로 그룹화할 수 있습니다. 테이블 내에서 그룹화하여 그룹화를 켤 수도 있으며 그룹이 그래프에 자동으로 채워집니다.

스무딩

스무딩 계수를 0과 1 사이로 설정할 수 있습니다. 여기서 0은 스무딩 없음, 1은 최대 스무딩입니다.

이상치 무시

기본 플롯 최소 및 최대 스케일에서 이상치를 제외하도록 플롯의 스케일을 다시 조정합니다. 플롯에 대한 설정의 영향은 플롯의 샘플링 모드에 따라 다릅니다.

  • 임의 샘플링 모드를 사용하는 플롯의 경우 이상치 무시를 활성화하면 5%에서 95%의 포인트만 표시됩니다. 이상치가 표시되더라도 다른 포인트와 다르게 서식이 지정되지는 않습니다.
  • 전체 충실도 모드를 사용하는 플롯의 경우 모든 포인트가 항상 표시되며 각 버킷의 마지막 값으로 압축됩니다. 이상치 무시를 활성화하면 각 버킷의 최소 및 최대 경계가 음영 처리됩니다. 그렇지 않으면 영역이 음영 처리되지 않습니다.

표현식

표현식을 사용하면 1-정확도와 같은 메트릭에서 파생된 값을 플롯할 수 있습니다. 현재 단일 메트릭을 플롯하는 경우에만 작동합니다. 간단한 산술 표현식 +, -, *, / 및 %는 물론 거듭제곱에 대한 **를 수행할 수 있습니다.

플롯 스타일

선 그래프의 스타일을 선택합니다.

선 그래프:

영역 그래프:

백분율 영역 그래프:

2 - Point aggregation

Data Visualization 정확도와 성능을 향상시키려면 라인 플롯 내에서 포인트 집계 방법을 사용하세요. 포인트 집계 모드에는 전체 충실도임의 샘플링의 두 가지 유형이 있습니다. W&B는 기본적으로 전체 충실도 모드를 사용합니다.

전체 충실도

전체 충실도 모드를 사용하면 W&B는 데이터 포인트 수를 기반으로 x축을 동적 버킷으로 나눕니다. 그런 다음 라인 플롯에 대한 포인트 집계를 렌더링하는 동안 각 버킷 내의 최소값, 최대값 및 평균값을 계산합니다.

포인트 집계에 전체 충실도 모드를 사용하면 다음과 같은 세 가지 주요 이점이 있습니다.

  • 극단값 및 스파이크 보존: 데이터에서 극단값 및 스파이크를 유지합니다.
  • 최소 및 최대 포인트 렌더링 방법 구성: W&B 앱을 사용하여 극단(최소/최대) 값을 음영 영역으로 표시할지 여부를 대화식으로 결정합니다.
  • 데이터 정확도를 잃지 않고 데이터 탐색: 특정 데이터 포인트를 확대하면 W&B가 x축 버킷 크기를 다시 계산합니다. 이는 정확도를 잃지 않고 데이터를 탐색하는 데 도움이 됩니다. 캐싱은 이전에 계산된 집계를 저장하여 로딩 시간을 줄이는 데 사용되며, 이는 대규모 데이터셋을 탐색할 때 특히 유용합니다.

최소 및 최대 포인트 렌더링 방법 구성

라인 플롯 주위에 음영 영역을 사용하여 최소값과 최대값을 표시하거나 숨깁니다.

다음 이미지는 파란색 라인 플롯을 보여줍니다. 밝은 파란색 음영 영역은 각 버킷의 최소값과 최대값을 나타냅니다.

라인 플롯에서 최소값과 최대값을 렌더링하는 세 가지 방법이 있습니다.

  • 없음: 최소/최대값은 음영 영역으로 표시되지 않습니다. x축 버킷에서 집계된 라인만 표시합니다.
  • 호버 시: 차트 위로 마우스를 가져가면 최소/최대값에 대한 음영 영역이 동적으로 나타납니다. 이 옵션은 뷰를 깔끔하게 유지하면서 범위를 대화식으로 검사할 수 있도록 합니다.
  • 항상: 최소/최대 음영 영역이 차트의 모든 버킷에 대해 일관되게 표시되어 항상 전체 값 범위를 시각화할 수 있습니다. 차트에 시각화된 Runs가 많은 경우 시각적 노이즈가 발생할 수 있습니다.

기본적으로 최소값과 최대값은 음영 영역으로 표시되지 않습니다. 음영 영역 옵션 중 하나를 보려면 다음 단계를 따르세요.

  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 화면 오른쪽 상단에서 패널 추가 버튼 바로 왼쪽에 있는 기어 아이콘을 선택합니다.
  4. 나타나는 UI 슬라이더에서 라인 플롯을 선택합니다.
  5. 포인트 집계 섹션 내에서 최소/최대값을 음영 영역으로 표시 드롭다운 메뉴에서 호버 시 또는 항상을 선택합니다.
  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 전체 충실도 모드를 활성화할 라인 플롯 패널을 선택합니다.
  4. 나타나는 모달 내에서 최소/최대값을 음영 영역으로 표시 드롭다운 메뉴에서 호버 시 또는 항상을 선택합니다.

데이터 정확도를 잃지 않고 데이터 탐색

극단값 또는 스파이크와 같은 중요한 포인트를 놓치지 않고 데이터셋의 특정 영역을 분석합니다. 라인 플롯을 확대하면 W&B는 각 버킷 내에서 최소값, 최대값 및 평균값을 계산하는 데 사용되는 버킷 크기를 조정합니다.

W&B는 x축을 기본적으로 1000개의 버킷으로 동적으로 나눕니다. 각 버킷에 대해 W&B는 다음 값을 계산합니다.

  • 최소값: 해당 버킷의 가장 낮은 값입니다.
  • 최대값: 해당 버킷의 가장 높은 값입니다.
  • 평균값: 해당 버킷의 모든 포인트의 평균값입니다.

W&B는 전체 데이터 표현을 보존하고 모든 플롯에 극단값을 포함하는 방식으로 버킷의 값을 플롯합니다. 1,000포인트 이하로 확대하면 전체 충실도 모드는 추가 집계 없이 모든 데이터 포인트를 렌더링합니다.

라인 플롯을 확대하려면 다음 단계를 따르세요.

  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 필요에 따라 워크스페이스에 라인 플롯 패널을 추가하거나 기존 라인 플롯 패널로 이동합니다.
  4. 클릭하고 드래그하여 확대할 특정 영역을 선택합니다.

임의 샘플링

임의 샘플링은 1500개의 임의로 샘플링된 포인트를 사용하여 라인 플롯을 렌더링합니다. 임의 샘플링은 데이터 포인트 수가 많은 경우 성능상의 이유로 유용합니다.

임의 샘플링 활성화

기본적으로 W&B는 전체 충실도 모드를 사용합니다. 임의 샘플링을 활성화하려면 다음 단계를 따르세요.

  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 화면 오른쪽 상단에서 패널 추가 버튼 바로 왼쪽에 있는 기어 아이콘을 선택합니다.
  4. 나타나는 UI 슬라이더에서 라인 플롯을 선택합니다.
  5. 포인트 집계 섹션에서 임의 샘플링을 선택합니다.
  1. W&B 프로젝트로 이동합니다.
  2. 왼쪽 탭에서 Workspace 아이콘을 선택합니다.
  3. 임의 샘플링을 활성화할 라인 플롯 패널을 선택합니다.
  4. 나타나는 모달 내에서 포인트 집계 방법 섹션에서 임의 샘플링을 선택합니다.

샘플링되지 않은 데이터에 엑세스

W&B Run API를 사용하여 Run 중에 기록된 메트릭의 전체 기록에 엑세스할 수 있습니다. 다음 예제에서는 특정 Run에서 손실 값을 검색하고 처리하는 방법을 보여줍니다.

# W&B API 초기화
run = api.run("l2k2/examples-numpy-boston/i0wt6xua")

# 'Loss' 메트릭의 기록 검색
history = run.scan_history(keys=["Loss"])

# 기록에서 손실 값 추출
losses = [row["Loss"] for row in history]

3 - Smooth line plots

꺾은선 그래프에서 스무딩을 사용하여 노이즈가 많은 데이터의 추세를 확인하세요.

W&B는 세 가지 유형의 평활화를 지원합니다:

대화형 W&B report에서 실시간으로 확인하세요.

지수 이동 평균 (기본값)

지수 평활화는 이전 점의 가중치를 지수적으로 감쇠시켜 시계열 데이터를 평활화하는 기술입니다. 범위는 0에서 1 사이입니다. 배경 정보는 지수 평활화를 참조하세요. 시계열의 초기 값이 0으로 치우치지 않도록 편향 제거 항이 추가되었습니다.

EMA 알고리즘은 선의 점 밀도 (x축 범위 단위당 y 값의 수)를 고려합니다. 이를 통해 특성이 다른 여러 선을 동시에 표시할 때 일관된 평활화가 가능합니다.

다음은 내부 작동 방식에 대한 샘플 코드입니다:

const smoothingWeight = Math.min(Math.sqrt(smoothingParam || 0), 0.999);
let lastY = yValues.length > 0 ? 0 : NaN;
let debiasWeight = 0;

return yValues.map((yPoint, index) => {
  const prevX = index > 0 ? index - 1 : 0;
  // VIEWPORT_SCALE scales the result to the chart's x-axis range
  const changeInX =
    ((xValues[index] - xValues[prevX]) / rangeOfX) * VIEWPORT_SCALE;
  const smoothingWeightAdj = Math.pow(smoothingWeight, changeInX);

  lastY = lastY * smoothingWeightAdj + yPoint;
  debiasWeight = debiasWeight * smoothingWeightAdj + 1;
  return lastY / debiasWeight;
});

에서 어떻게 보이는지 살펴보세요:

가우시안 평활화

가우시안 평활화 (또는 가우시안 커널 평활화)는 점의 가중 평균을 계산하며, 가중치는 평활화 파라미터로 지정된 표준 편차를 갖는 가우시안 분포에 해당합니다. 자세한 내용은 . 평활화된 값은 모든 입력 x 값에 대해 계산됩니다.

TensorBoard의 동작과 일치하는 데 관심이 없다면 가우시안 평활화는 평활화를 위한 좋은 표준 선택입니다. 지수 이동 평균과 달리 점은 값 이전과 이후에 발생하는 점을 기반으로 평활화됩니다.

에서 어떻게 보이는지 살펴보세요:

이동 평균

이동 평균은 주어진 x 값 이전과 이후의 창에서 점의 평균으로 점을 대체하는 평활화 알고리즘입니다. https://en.wikipedia.org/wiki/Moving_average의 “Boxcar Filter"를 참조하세요. 이동 평균에 대해 선택된 파라미터는 Weights and Biases에 이동 평균에서 고려할 점의 수를 알려줍니다.

점이 x축에서 고르지 않게 배치된 경우 가우시안 평활화를 사용하는 것이 좋습니다.

다음 이미지는 이동 앱이 에서 어떻게 보이는지 보여줍니다:

지수 이동 평균 (더 이상 사용되지 않음)

TensorBoard EMA 알고리즘은 x축 단위당 플롯된 점의 수가 일관되지 않은 동일한 차트에서 여러 선을 정확하게 평활화할 수 없으므로 더 이상 사용되지 않습니다.

지수 이동 평균은 TensorBoard의 평활화 알고리즘과 일치하도록 구현됩니다. 범위는 0에서 1 사이입니다. 배경 정보는 지수 평활화를 참조하세요. 시계열의 초기 값이 0으로 치우치지 않도록 편향 제거 항이 추가되었습니다.

다음은 내부 작동 방식에 대한 샘플 코드입니다:

  data.forEach(d => {
    const nextVal = d;
    last = last * smoothingWeight + (1 - smoothingWeight) * nextVal;
    numAccum++;
    debiasWeight = 1.0 - Math.pow(smoothingWeight, numAccum);
    smoothedData.push(last / debiasWeight);

에서 어떻게 보이는지 살펴보세요:

구현 세부 정보

모든 평활화 알고리즘은 샘플링된 데이터에서 실행됩니다. 즉, 1500개 이상의 점을 기록하면 평활화 알고리즘은 서버에서 점을 다운로드한 후에 실행됩니다. 평활화 알고리즘의 의도는 데이터에서 패턴을 빠르게 찾는 데 도움을 주는 것입니다. 많은 수의 기록된 점이 있는 메트릭에 대해 정확한 평활화된 값이 필요한 경우 API를 통해 메트릭을 다운로드하고 자체 평활화 methods를 실행하는 것이 좋습니다.

원본 데이터 숨기기

기본적으로 원본의 평활화되지 않은 데이터가 배경에 희미한 선으로 표시됩니다. 원본 보기 토글을 클릭하여 이 기능을 끄세요.