Skip to main content
wandb.Table을 사용하여 데이터를 로깅하여 W&B로 시각화하고 쿼리하세요. 이 가이드에서 다음을 배우세요:
  1. table 생성
  2. 데이터 추가
  3. 데이터 조회
  4. table 저장

table 생성

table을 정의하려면 각 데이터 행에 표시할 열을 지정하세요. 각 행은 트레이닝 데이터셋의 단일 항목, 트레이닝 중 특정 단계 또는 에포크, 테스트 항목에 대한 모델의 예측, 모델이 생성한 객체 등이 될 수 있습니다. 각 열에는 숫자, 텍스트, 불리언, 이미지, 비디오, 오디오 등 고정된 유형이 있습니다. 유형을 미리 지정할 필요는 없습니다. 각 열에 이름을 지정하고, 해당 열 인덱스에는 그 유형의 데이터만 전달하세요. 더 자세한 예시는 W&B Tables 가이드를 참조하세요. wandb.Table 생성자는 다음 두 가지 방법 중 하나로 사용합니다.
  1. 행 목록: 이름이 지정된 열과 데이터 행을 로깅합니다. 예를 들어 다음 코드 스니펫은 2개의 행과 3개의 열로 구성된 table을 생성합니다.
  2. Pandas 데이터프레임: wandb.Table(dataframe=my_df)를 사용하여 데이터프레임을 로깅합니다. 열 이름은 데이터프레임에서 추출됩니다.

기존 배열 또는 데이터프레임에서

데이터 추가

table은 변경 가능합니다. 스크립트가 실행되는 동안 table에 최대 200,000행까지 더 많은 데이터를 추가할 수 있습니다. table에 데이터를 추가하는 방법에는 두 가지가 있습니다:
  1. 행 추가: table.add_data("3a", "3b", "3c"). 새 행은 목록으로 표현되지 않습니다. 행이 목록 형식인 경우 별표 표기 * 를 사용하여 목록을 위치 인수로 확장하세요: table.add_data(*my_row_list). 행은 table의 열 수와 동일한 수의 항목을 포함해야 합니다.
  2. 열 추가: table.add_column(name="col_name", data=col_data). col_data의 길이는 table의 현재 행 수와 같아야 합니다. 여기서 col_data는 목록 데이터 또는 NumPy NDArray일 수 있습니다.

데이터를 점진적으로 추가하기

이 코드 샘플은 W&B table을 점진적으로 생성하고 데이터를 채우는 방법을 보여줍니다. 가능한 모든 레이블의 신뢰도 점수를 포함해 미리 정의된 열로 table을 정의한 다음, 추론 중에 데이터를 한 행씩 추가합니다. run을 재개할 때 table에 데이터를 점진적으로 추가할 수도 있습니다.

재개된 run에 데이터 추가

W&B table을 재개된 run에서 점진적으로 업데이트할 수 있습니다. 아티팩트에서 기존 table을 로드하고 마지막 데이터 행을 검색한 후 업데이트된 메트릭을 추가하세요. 그런 다음 호환성을 위해 table을 다시 초기화하고 업데이트된 버전을 W&B에 로깅하세요.

데이터 조회

Table에 데이터가 있으면 열 또는 행으로 액세스하세요:
  1. 행 Iterator: Table의 행 iterator(예: for ndx, row in table.iterrows(): ...)를 사용하여 데이터의 행을 효율적으로 반복하세요.
  2. 열 조회: table.get_column("col_name")을 사용하여 데이터 열을 조회하세요. 편의상 convert_to="numpy"를 전달하여 열을 primitives의 NumPy NDArray로 변환할 수 있습니다. 이는 열에 wandb.Image와 같은 media 유형이 포함된 경우 유용하며, 기본 데이터에 직접 액세스할 수 있습니다.

table 저장하기

스크립트에서 모델 예측 table 같은 데이터 table을 생성했다면 W&B에 저장하여 결과를 실시간으로 시각화하세요.

run에 table 로깅하기

다음과 같이 wandb.Run.log()를 사용하여 table을 run에 저장하세요:
table을 같은 키에 로깅할 때마다 table의 새 버전이 생성되어 백엔드에 저장됩니다. 따라서 같은 키에 로깅하기만 하면 여러 트레이닝 단계에 걸쳐 같은 table을 로깅하여 시간에 따른 모델 예측의 개선 과정을 확인하거나, 서로 다른 run의 table을 비교할 수 있습니다. 최대 200,000개의 행을 로깅할 수 있습니다.
200,000개가 넘는 행을 로깅하려면 다음과 같이 제한을 재정의할 수 있습니다:wandb.Table.MAX_ARTIFACT_ROWS = X하지만 이렇게 하면 UI에서 쿼리 속도가 느려지는 등의 성능 문제가 발생할 수 있습니다.

프로그래밍 방식으로 table에 액세스하기

백엔드에서 Tables는 아티팩트로 저장됩니다. 특정 버전에 액세스하려면 아티팩트 API를 사용하세요.
아티팩트에 대한 자세한 내용은 개발자 가이드의 Artifacts 챕터를 참조하세요.

table 시각화

이 방식으로 로깅한 table은 모두 Run page와 Project page의 Workspace에 표시됩니다. 자세한 내용은 Tables 시각화 및 분석을 참조하세요.

아티팩트 table

artifact.add()를 사용하면 table을 workspace 대신 run의 Artifacts 섹션에 로깅할 수 있습니다. 한 번 로깅해 두고 이후 run에서 참조할 데이터셋이 있을 때 유용합니다.
이미지 데이터로 artifact.add()를 사용하는 자세한 예시는 이 Colab을 참고하세요. Artifacts와 Tables를 사용해 테이블 형식 데이터의 버전을 관리하고 중복을 제거하는 방법에 대한 예시는 이 Report를 참고하세요.

아티팩트 table 조인

wandb.JoinedTable(table_1, table_2, join_key)를 사용하여 로컬에서 구성한 table이나 다른 아티팩트에서 검색한 table을 조인할 수 있습니다. 아티팩트 컨텍스트에서 이전에 로깅한 두 개의 Table을 조인하려면, 아티팩트에서 가져와서 결과를 새 Table로 조인하세요. 예를 들어, 다음 코드 예시는 'original_songs'라는 원본 노래 Table과 'synth_songs'라는 동일한 노래의 합성 버전 Table을 조회하는 방법을 보여줍니다. 코드는 두 table을 "song_id"에서 조인하고, 결과 table을 새 W&B Table로 업로드합니다:
이 튜토리얼 조회하여 서로 다른 아티팩트 객체에 저장된 이전에 저장된 두 개의 table을 결합하는 방법에 대한 예시를 확인하세요.
마지막 수정일 2026년 9월 30일