데이터 내보내기
Public API를 사용해 W&B에 저장한 데이터를 내보내거나 업데이트할 수 있습니다. 이 API를 사용하기 전에 스크립트에서 데이터를 로깅해야 합니다. 자세한 내용은 퀵스타트를 확인하세요. Public API 사용 사례- 데이터 내보내기: Jupyter Notebook에서 맞춤형 분석을 위해 데이터프레임을 가져옵니다. 데이터를 탐색한 뒤에는 새 분석 run을 만들고 결과를 로깅해 분석 결과를 동기화할 수 있습니다. 예:
wandb.init(job_type="analysis") - 기존 Runs 업데이트: W&B run과 연결되어 로깅된 데이터를 업데이트할 수 있습니다. 예를 들어, 아키텍처나 원래 로깅되지 않았던 하이퍼파라미터 같은 추가 정보를 포함하도록 여러 Runs의 설정을 업데이트할 수 있습니다.
run 데이터 내보내기
완료되었거나 현재 활성 상태인 run에서 데이터를 다운로드합니다. 일반적으로는 Jupyter 노트북에서 맞춤형 분석에 사용할 데이터프레임을 다운로드하거나, 자동화된 환경에서 맞춤형 로직을 사용하는 경우가 많습니다.
과거 run의 데이터도 수정하거나 업데이트할 수 있습니다. 기본적으로 API 객체 인스턴스 하나가 모든 네트워크 요청을 캐시합니다. 실행 중인 스크립트에서 실시간 정보가 필요하다면
api.flush()를 호출해 업데이트된 값을 가져오세요.
여러 run 쿼리하기
- 데이터프레임 및 CSV
- MongoDB 스타일
이 예제 스크립트는 프로젝트를 찾아 name, 설정, summary 통계가 포함된 run CSV를 출력합니다.
<entity>와 <project>를 각각 사용자의 W&B entity와 프로젝트 이름으로 바꾸세요.api.runs를 호출하면 반복 가능한 Runs 객체가 반환되며, 목록처럼 동작합니다. 기본적으로 이 객체는 필요에 따라 한 번에 50개의 run을 순서대로 로드하지만, per_page 키워드 인수로 페이지당 로드할 개수를 변경할 수 있습니다.
api.runs는 order 키워드 인수도 받습니다. 기본 정렬 순서는 -created_at입니다. 결과를 오름차순으로 정렬하려면 +created_at를 지정하세요. 설정이나 summary 값으로도 정렬할 수 있습니다. 예를 들어 summary.val_acc 또는 config.experiment_name입니다.
오류 처리
W&B 서버와 통신하는 중 오류가 발생하면wandb.CommError가 발생합니다. 원본 예외는 exc 속성을 통해 확인할 수 있습니다.
활성 run 중에 run 이름과 ID 조회하기
wandb.init()를 호출한 후에는 스크립트에서 다음과 같이 무작위 run ID 또는 사람이 읽을 수 있는 run 이름에 액세스할 수 있습니다:
- 고유한 run ID(8자 해시):
run.id - 무작위 run 이름(사람이 읽기 쉬움):
run.name
- Run ID: 생성된 해시를 그대로 두세요. 이 값은 프로젝트의 모든 run에서 고유해야 합니다.
- Run name: 짧고 읽기 쉬우며, 가능하면 고유한 값이어야 합니다. 그래야 차트의 서로 다른 선을 구분할 수 있습니다.
- Run notes: run에서 무엇을 하고 있는지 간단히 설명하기에 아주 좋은 곳입니다.
wandb.init(notes="여기에 노트 입력")로 설정할 수 있습니다. - Run tags: run tags에서 항목을 동적으로 추적하고, UI에서 필터를 사용해 table을 관심 있는 runs만 보이도록 좁혀 보세요. 스크립트에서 tags를 설정한 다음 UI에서 편집할 수 있으며, Runs table과 run 페이지의 Overview 탭 모두에서 가능합니다. 자세한 지침은 여기를 참조하세요.
Public API 예시
run에서 메트릭 조회
이 예제는"<entity>/<project>/<run_id>"에 저장된 run에서 run.log({"accuracy": acc})로 기록된 타임스탬프와 정확도를 출력합니다.
run에서 특정 메트릭 조회
run에서 특정 메트릭을 가져오려면keys 인수를 사용하세요. run.history()를 사용할 때 기본 샘플 수는 500입니다. 특정 메트릭이 포함되지 않은 로깅된 step은 출력 데이터프레임에서 NaN으로 표시됩니다. keys 인수를 사용하면 API가 나열된 메트릭 키가 포함된 step을 더 자주 샘플링합니다.
두 run 비교하기
이렇게 하면run1과 run2의 설정 매개변수 중 서로 다른 항목이 출력됩니다.
run이 완료된 후 해당 run의 메트릭 업데이트
이 예제에서는 이전 run의 정확도를0.9로 설정합니다:
완료된 run의 메트릭 이름 바꾸기
이 예제에서는 테이블의 summary 열 이름을 변경합니다.열 이름 변경은 테이블에만 적용됩니다. 차트에서는 여전히 메트릭의 원래 이름이 사용됩니다.
기존 run의 설정 업데이트
이 예제에서는 설정 항목 하나를 업데이트합니다.시스템 리소스 사용량을 CSV 파일로 내보내기
아래 스니펫은 시스템 리소스 사용량을 찾아 CSV 파일에 저장합니다.샘플링되지 않은 메트릭 데이터 조회
이력에서 데이터를 가져오면 기본적으로 500개 포인트로 샘플링됩니다.run.scan_history()를 사용하면 로깅된 모든 데이터 포인트를 조회할 수 있습니다. 다음은 이력에 로깅된 모든 loss 데이터 포인트를 다운로드하는 예제입니다.
이력에서 페이지 단위로 데이터 조회
run의 전체 샘플링되지 않은 이력을 조회하려면run.scan_history()를 사용하세요. 샘플링되지 않은 이력에는 해당 run의 모든 이력 레코드가 포함됩니다. 반면 run.history()의 샘플링된 뷰에서는 일부 개별 레코드가 누락될 수 있습니다.
page_size 매개변수는 API 요청당 가져오는 이력 레코드의 최대 개수를 제어하며, 기본값은 1000입니다. 요청이 느리거나 시간 초과가 발생하면 더 작은 페이지 크기를 사용해 보세요. 페이지 크기를 줄이면 시간 초과 위험을 낮출 수 있지만, 더 많은 API 요청이 필요합니다.
keys 매개변수는 반환할 메트릭을 독립적으로 필터링합니다.
프로젝트의 모든 run에서 메트릭을 CSV 파일로 내보내기
이 스크립트는 프로젝트의 run을 가져와 각 run의 이름, 설정, summary 통계를 포함한 데이터프레임과 CSV 파일을 생성합니다.<entity>와 <project>를 각각 W&B entity와 프로젝트 이름으로 바꾸세요.
run의 시작 시간 조회
이 코드 예제는 run이 생성된 시점을 조회합니다.완료된 run에 파일 업로드
아래 코드 스니펫은 선택한 파일을 완료된 run에 업로드합니다.run에서 파일 다운로드
이 예시에서는 cifar 프로젝트의 run ID uxte44z7에 연결된 파일 “model-best.h5”를 찾아 로컬에 저장합니다.run의 모든 파일 다운로드
이 작업은 run에 연결된 모든 파일을 찾아 로컬에 저장합니다.특정 sweep의 run 조회
이 스니펫은 특정 sweep에 속한 모든 run을 다운로드합니다.sweep에서 최적의 run 조회
다음 스니펫은 지정된 sweep에서 최적의 run을 조회합니다.best_run은 sweep 설정의 메트릭 매개변수에서 정의한 가장 좋은 메트릭을 가진 run입니다.
sweep에서 가장 성능이 좋은 모델 파일 다운로드
이 스니펫은 모델 파일을model.h5에 저장한 run들로 구성된 sweep에서 검증 정확도가 가장 높은 모델 파일을 다운로드합니다.