원본 트레이닝 스크립트
다음 코드가 Python 스크립트에 있다고 가정합니다. 일반적인 트레이닝 루프를 모방하는main
이라는 함수를 정의합니다. 각 에포크마다 트레이닝 및 검증 데이터 세트에서 정확도와 손실이 계산됩니다. 이 예제의 목적을 위해 해당 값은 임의로 생성됩니다.
하이퍼파라미터 값을 저장하는 config
라는 사전을 정의했습니다. 셀의 끝에서 main
함수를 호출하여 모의 트레이닝 코드를 실행합니다.
W&B Python SDK를 사용한 트레이닝 스크립트
다음 코드 예제에서는 W&B Python SDK를 코드에 추가하는 방법을 보여줍니다. CLI에서 W&B Sweep 작업을 시작하는 경우 CLI 탭을 살펴보십시오. Jupyter Notebook 또는 Python 스크립트 내에서 W&B Sweep 작업을 시작하는 경우 Python SDK 탭을 살펴보십시오.- Python 스크립트 또는 노트북
- CLI
W&B Sweep을 생성하기 위해 코드 예제에 다음을 추가했습니다.
- Weights & Biases Python SDK를 가져옵니다.
- 키-값 쌍이 스윕 구성을 정의하는 사전 오브젝트를 생성합니다. 다음 예제에서는 각 스윕 중에 배치 크기(
batch_size
), 에포크(epochs
) 및 학습률(lr
) 하이퍼파라미터가 다양합니다. 스윕 구성을 생성하는 방법에 대한 자세한 내용은 스윕 구성 정의를 참조하십시오. - 스윕 구성 사전을
wandb.sweep
에 전달합니다. 그러면 스윕이 초기화됩니다. 스윕 ID(sweep_id
)가 반환됩니다. 스윕을 초기화하는 방법에 대한 자세한 내용은 스윕 초기화를 참조하십시오. wandb.init()
API를 사용하여 데이터를 동기화하고 W&B Run으로 기록하는 백그라운드 프로세스를 생성합니다.- (선택 사항) 하드 코딩된 값을 정의하는 대신
wandb.config
에서 값을 정의합니다. wandb.log
를 사용하여 최적화하려는 메트릭을 기록합니다. 구성에 정의된 메트릭을 기록해야 합니다. 구성 사전(이 예제에서는sweep_configuration
) 내에서val_acc
값을 최대화하도록 스윕을 정의했습니다.wandb.agent
API 호출로 스윕을 시작합니다. 스윕 ID, 스윕이 실행할 함수의 이름(function=main
)을 제공하고 시도할 최대 run 수를 4개(count=4
)로 설정합니다. W&B Sweep 시작 방법에 대한 자세한 내용은 스윕 에이전트 시작을 참조하십시오.
메트릭 로깅 시 고려 사항
스윕 구성에 지정한 메트릭을 W&B에 명시적으로 기록해야 합니다. 하위 디렉터리 내부에 스윕에 대한 메트릭을 기록하지 마십시오. 예를 들어 다음 유사 코드를 고려하십시오. 사용자는 검증 손실("val_loss": loss
)을 기록하려고 합니다. 먼저 값을 사전에 전달합니다. 그러나 wandb.log
에 전달된 사전은 사전에서 키-값 쌍에 명시적으로 엑세스하지 않습니다.
wandb.log
메소드에 전달할 때 키-값 쌍을 지정합니다.
train.py