Skip to main content

데이터 내보내기

Public API를 사용하면 W&B에 저장한 데이터를 내보내거나 업데이트할 수 있습니다. 이 API를 사용하기 전에 먼저 스크립트에서 데이터를 로깅하세요. 자세한 내용은 퀵스타트를 확인하세요. Public API 사용 사례
  • 데이터 내보내기: 데이터프레임을 가져와 Jupyter 노트북에서 맞춤형 분석을 수행합니다. 데이터를 탐색한 후에는 새 분석 run을 생성하고 결과를 로깅하여 발견 사항을 동기화할 수 있습니다. 예: wandb.init(job_type="analysis")
  • 기존 run 업데이트: W&B run에 연결되어 로깅된 데이터를 업데이트할 수 있습니다. 예를 들어, 처음에 로깅하지 않은 아키텍처나 하이퍼파라미터 같은 정보를 추가하도록 여러 run의 설정을 업데이트할 수 있습니다.
사용 가능한 함수에 대한 자세한 내용은 생성된 레퍼런스 문서를 참조하세요.

run 데이터 내보내기

완료된 run이나 실행 중인 run에서 데이터를 다운로드할 수 있습니다. 일반적으로 Jupyter 노트북에서 맞춤형 분석을 수행하기 위해 데이터프레임을 다운로드하거나, 자동화된 환경에서 맞춤형 로직을 적용할 때 사용합니다.
run 객체에서 가장 자주 사용되는 속성은 다음과 같습니다. 과거 run의 데이터를 수정하거나 업데이트할 수도 있습니다. 기본적으로 api 객체의 단일 인스턴스는 모든 네트워크 요청을 캐시합니다. 실행 중인 스크립트에서 실시간 정보가 필요하다면 api.flush()를 호출하여 최신 값을 가져오세요.

여러 run 쿼리하기

이 예제 스크립트는 프로젝트를 찾아 각 run의 이름, 설정, 요약 통계를 담은 CSV를 출력합니다. <entity>와 <project>를 각각 사용 중인 W&B entity와 프로젝트 이름으로 바꾸세요.
api.runs를 호출하면 반복 가능하고 목록처럼 동작하는 Runs 객체가 반환됩니다. 이 객체는 기본적으로 필요할 때마다 run을 50개씩 순차적으로 로드하며, per_page 키워드 인수로 페이지당 로드할 개수를 변경할 수 있습니다. api.runs는 order 키워드 인수도 지원합니다. 기본 정렬 순서는 -created_at입니다. 결과를 오름차순으로 정렬하려면 +created_at을 지정하세요. summary.val_acc나 config.experiment_name처럼 설정 값이나 요약 값을 기준으로 정렬할 수도 있습니다.

오류 처리

W&B 서버와 통신하는 중에 오류가 발생하면 wandb.CommError 예외가 발생합니다. 원래 예외는 exc 속성으로 확인할 수 있습니다.

실행 중인 run의 이름과 ID 조회하기

wandb.init()을 호출한 후에는 다음과 같이 스크립트에서 무작위로 생성된 run ID나 사람이 읽을 수 있는 run 이름에 액세스할 수 있습니다.
  • 고유한 run ID(8자 해시): run.id
  • 무작위 run 이름(사람이 읽을 수 있는 형태): run.name
run에 유용한 식별자를 설정하려는 경우 다음 방법을 권장합니다.
  • Run ID: 생성된 해시를 그대로 사용하세요. 이 값은 프로젝트 내의 run 간에 고유해야 합니다.
  • Run 이름: 차트에서 여러 선을 서로 구분할 수 있도록 짧고 읽기 쉬우며 가능하면 고유한 이름을 지정하세요.
  • Run 노트: run에서 수행하는 작업을 간단히 설명해 두기에 적합합니다. wandb.init(notes="your notes here")로 설정할 수 있습니다.
  • Run 태그: run 태그로 항목을 동적으로 추적하고, UI의 필터를 사용해 관심 있는 run만 보이도록 table을 필터링하세요. 태그는 스크립트에서 설정한 후 UI의 runs table과 run 페이지의 Overview 탭에서 편집할 수 있습니다. 자세한 안내는 여기를 참조하세요.

Public API 예시

run에서 메트릭 조회하기

이 예제는 "<entity>/<project>/<run_id>"에 저장된 run에서 run.log({"accuracy": acc})로 로깅한 타임스탬프와 정확도를 출력합니다.

run에서 특정 메트릭 조회하기

run에서 특정 메트릭을 가져오려면 keys 인수를 사용하세요. run.history()를 사용할 때 기본 샘플 수는 500개입니다. 로깅된 step 중 특정 메트릭이 없는 step은 출력 데이터프레임에 NaN으로 표시됩니다. keys 인수를 지정하면 API가 나열된 메트릭 키를 포함하는 step을 더 자주 샘플링합니다.

두 run 비교하기

run1과 run2 간에 서로 다른 설정 매개변수를 출력합니다.
출력:

완료된 run의 메트릭 업데이트하기

이 예제는 이전 run의 정확도를 0.9로 설정합니다.

완료된 run의 메트릭 이름 변경하기

이 예제에서는 table의 요약 열 이름을 변경합니다.
열 이름 변경은 table에만 적용됩니다. 차트에서는 여전히 원래 이름으로 메트릭을 참고합니다.

기존 run의 설정 업데이트

이 예제는 설정 값 중 하나를 업데이트합니다.
자세한 내용은 실험 설정하기를 참조하세요.

시스템 리소스 사용량을 CSV 파일로 내보내기

아래 스니펫은 시스템 리소스 사용량을 조회한 다음 CSV로 저장합니다.

샘플링되지 않은 메트릭 데이터 조회

이력에서 데이터를 가져오면 기본적으로 500개 포인트로 샘플링됩니다. 로깅된 데이터 포인트를 모두 조회하려면 run.scan_history()를 사용하세요. 다음은 이력에 로깅된 loss 데이터 포인트를 모두 다운로드하는 예시입니다.

이력에서 페이지 매김된 데이터 조회하기

run의 샘플링되지 않은 전체 이력을 조회하려면 run.scan_history()를 사용하세요. 샘플링되지 않은 이력에는 해당 run의 모든 이력 레코드가 포함됩니다. 반면 run.history()가 반환하는 샘플링된 뷰에서는 일부 레코드가 누락될 수 있습니다. page_size 매개변수는 API 요청 한 번에 가져오는 이력 레코드의 최대 개수를 지정하며, 기본값은 1000입니다. 요청이 느리거나 timeout이 발생하면 페이지 크기를 줄여 사용해 보세요. 페이지 크기가 작을수록 timeout 위험은 줄어들지만 API 요청 횟수는 늘어납니다. keys 매개변수는 이와 별도로 반환할 메트릭을 필터링합니다.

프로젝트의 모든 run에서 메트릭을 CSV 파일로 내보내기

이 스크립트는 프로젝트의 run을 가져와 각 run의 이름, 설정, 요약 통계가 담긴 데이터프레임과 CSV를 생성합니다. <entity>와 <project>를 각각 W&B entity와 프로젝트 이름으로 바꾸세요.

run의 시작 시간 조회

이 코드 스니펫은 run이 생성된 시각을 조회합니다.

완료된 run에 파일 업로드하기

다음 코드 스니펫은 선택한 파일을 완료된 run에 업로드합니다.

run에서 파일 다운로드하기

다음 예제는 cifar 프로젝트에서 run ID uxte44z7에 연결된 “model-best.h5” 파일을 찾아 로컬에 저장합니다.

run의 모든 파일 다운로드

다음 코드는 run에 연결된 모든 파일을 찾아 로컬에 저장합니다.

특정 스윕의 run 조회

이 스니펫은 특정 스윕에 연결된 모든 run을 다운로드합니다.

스윕에서 최적의 run 조회

다음 스니펫은 지정한 스윕에서 가장 성능이 좋은 run을 조회합니다.
best_run은 스윕 설정의 metric 매개변수에 정의된 메트릭 값이 가장 좋은 run입니다.

스윕에서 최고 성능 모델 파일 다운로드하기

이 스니펫은 모델 파일을 model.h5에 저장한 run들로 구성된 스윕에서 검증 정확도가 가장 높은 모델 파일을 다운로드합니다.

run에서 특정 확장자의 파일 모두 삭제

이 스니펫은 run에서 특정 확장자를 가진 파일을 삭제합니다.

시스템 메트릭 데이터 다운로드

이 스니펫은 run의 모든 시스템 리소스 사용량 메트릭을 담은 데이터프레임을 생성한 다음 CSV 파일로 저장합니다.

summary 메트릭 업데이트

딕셔너리를 전달하여 summary 메트릭을 업데이트할 수 있습니다.

run을 실행한 명령어 조회

각 run은 자신을 실행한 명령어를 캡처하여 run 개요 페이지에 표시합니다. API로 이 명령어를 가져오려면 다음을 실행하세요.
마지막 수정일 2026년 9월 30일