시작하기
이미 TensorBoard를 사용하고 있다면 Weights & Biases와 통합할 수 있습니다. 두 라이브러리를 모두 임포트하면 스크립트에서 Weights & Biases API와 TensorFlow API를 사용할 수 있습니다.커스텀 메트릭 로깅하기
이 섹션에서는 TensorBoard가 캡처하지 않는 메트릭을 로깅하여 표준 TensorBoard 요약과 함께 추가 값을 추적하는 방법을 설명합니다. TensorBoard가 로깅하지 않는 커스텀 메트릭을 추가로 로깅해야 하는 경우 코드에서run.log()를 호출하면 됩니다(예: run.log({"custom": 0.8})).
Weights & Biases는 TensorBoard를 동기화할 때 run.log()의 step 인수를 비활성화합니다. 다른 step 카운트를 설정하려면 다음과 같이 step 메트릭과 함께 메트릭을 로깅하세요.
TensorFlow estimators 훅
이 섹션에서는 TensorFlow estimators용 Weights & Biases 훅을 설명합니다. 이 훅을 사용하면 estimator 트레이닝 중에 Weights & Biases가 캡처하는 항목을 세밀하게 제어할 수 있습니다. 로깅할 항목을 더 세밀하게 제어하고 싶다면 Weights & Biases에서 제공하는 TensorFlow estimators용 훅을 사용하세요. 이 훅은 그래프의 모든tf.summary 값을 로깅합니다.
수동으로 로깅하기
estimator를 사용하지 않거나 특정 요약을 명시적으로 로깅하려는 경우, 이 섹션에서는tf.summary 값을 Weights & Biases에 직접 전송하는 방법을 설명합니다.
TensorFlow에서 메트릭을 로깅하는 한 가지 방법은 TensorFlow 로거로 tf.summary를 로깅하는 것입니다.
tf.GradientTape를 사용하는 것이 권장됩니다. 자세한 내용은 TensorFlow 맞춤형 트레이닝 워크스루를 참조하세요. 맞춤형 TensorFlow 트레이닝 루프에 Weights & Biases를 통합하여 메트릭을 로깅하려면 다음 스니펫을 참고하세요.
Weights & Biases와 TensorBoard의 차이
TensorBoard와 함께 또는 TensorBoard 대신 Weights & Biases를 도입할지 검토 중이라면, 이 섹션에서 주요 차이를 확인하세요. Weights & Biases는 TensorBoard 사용자가 흔히 겪던 한계를 해결하기 위해 만들어졌습니다. Weights & Biases가 다른 점은 다음과 같습니다.- 모델 재현: Weights & Biases는 실험과 탐색은 물론, 나중에 모델을 재현하는 작업까지 지원합니다. Weights & Biases는 메트릭, 하이퍼파라미터, 코드 버전을 캡처하고 버전 관리 상태와 모델 체크포인트도 저장할 수 있으므로 프로젝트를 재현할 수 있습니다.
- 자동 정리: 협업자의 프로젝트를 이어받거나, 한동안 자리를 비웠다가 돌아오거나, 오래된 프로젝트를 다시 살펴볼 때 Weights & Biases에서 이미 시도한 모델을 확인할 수 있으므로 실험을 불필요하게 다시 실행하지 않아도 됩니다.
- 유연한 인테그레이션: 오픈 소스 Python 패키지를 설치하고 코드에 몇 줄만 추가하면 프로젝트에 Weights & Biases를 적용할 수 있습니다. 각 run마다 로깅된 메트릭과 기록이 생성됩니다.
- 영구적인 중앙 집중식 대시보드: 로컬 머신, 공유 연구실 클러스터, 클라우드의 스팟 인스턴스 중 어디에서 모델을 트레이닝하든 Weights & Biases는 결과를 동일한 중앙 집중식 대시보드로 전송합니다. 여러 머신에 흩어진 TensorBoard 파일을 복사하고 정리할 필요가 없습니다.
- Tables: 여러 모델의 결과를 검색, 필터링, 정렬, 그룹화할 수 있습니다. 모델 버전을 검토하고 작업별로 가장 성능이 좋은 모델을 찾을 수 있습니다.
- 협업 도구: Weights & Biases로 머신러닝 프로젝트를 체계적으로 관리하세요. Weights & Biases 링크를 공유하거나 비공개 팀을 사용하여 결과를 공유 프로젝트로 보낼 수 있습니다. Reports는 대화형 시각화와 Markdown 설명으로 협업을 지원하며, 이를 활용해 작업 일지를 작성하거나, 지도 교수나 상사와 발견 사항을 공유하거나, 연구실 또는 팀에 발견 사항을 발표할 수 있습니다.
예시
이러한 인테그레이션 패턴이 전체 프로젝트에 적용된 모습을 보려면 다음 예시를 살펴보세요.- TensorFlow Estimators를 사용한 MNIST 예시.
- 순수 TensorFlow를 사용한 Fashion MNIST 예시.
- MNIST 예시의 Weights & Biases 대시보드.
- TensorFlow 2에서 트레이닝 루프 맞춤 설정하기: 아티클 및 대시보드.