명령줄에서 스윕을 초기화하고 스윕 에이전트를 시작하려면 YAML 파일에 스윕 설정을 정의하세요. Python 스크립트 또는 노트북 내에서 스윕을 완전히 초기화하고 시작하려면 Python 딕셔너리에 스윕을 정의하세요.
기본 구조
name, 검색할 parameters, 검색 method와 같은 스윕 검색의 속성을 정의하세요.
예를 들어, 다음 코드 스니펫은 YAML 파일과 Python 딕셔너리에 정의된 동일한 스윕 설정을 보여줍니다. 이 스윕 설정에는 program, name, method, metric, parameters의 다섯 가지 최상위 키가 지정되어 있습니다.
- CLI
- Python 스크립트 또는 노트북
명령줄에서 대화형으로 스윕를 관리하려면 YAML 파일에 스윕 설정을 정의하세요.
config.yaml
parameters 키 안에는 learning_rate, batch_size, epochs, optimizer 키가 중첩되어 있습니다. 지정한 각 중첩 키에는 하나 이상의 값, 분포, 확률 등을 제공할 수 있습니다. 자세한 내용은 Sweep configuration options의 parameters 섹션을 참조하세요.
이중 중첩 매개변수
parameters 키를 하나 더 추가하세요.
다음 예시는 nested_category_1, nested_category_2, nested_category_3의 중첩 매개변수가 포함된 스윕 설정을 보여주며, 각 매개변수에는 momentum과 weight_decay라는 추가 매개변수가 포함됩니다. 다음 코드 예제는 YAML 파일과 Python 딕셔너리에서 이 설정을 보여줍니다.
- CLI
- Python 스크립트 또는 노트북
스윕 설정 템플릿
hyperparameter_name은 하이퍼파라미터 이름으로, 대괄호로 묶인 값은 적절한 값으로 바꾸세요.
config.yaml
!!float 연산자를 추가하세요. 이 연산자는 값을 부동소수점 숫자로 변환합니다. 예를 들어 min: !!float 1e-5와 같습니다. 자세한 내용은 매크로 및 맞춤형 command 인수 예시를 참조하세요.
Sweep 설정 예시
- CLI
- Python 스크립트 또는 노트북
config.yaml
Bayes hyperband 예제
early_terminate의 최소 또는 최대 반복 횟수를 지정하는 방법을 보여줍니다:
- 최소 반복 횟수
- 최대 반복 횟수
이 예제의 브래킷은
[3, 3*eta, 3*eta*eta, 3*eta*eta*eta]이며, [3, 9, 27, 81]와 같습니다.매크로 및 맞춤형 명령줄 인수 예시
sweep.yaml)은 Python 스크립트(run.py)를 실행하는 명령을 정의하며, 스윕이 실행될 때 ${env}, ${interpreter}, ${program} 매크로가 적절한 값으로 대체됩니다.
--batch_size=${batch_size}, --test=True, --optimizer=${optimizer} 인수는 맞춤형 매크로를 사용해 스윕 설정에 정의된 batch_size, test, optimizer 매개변수의 값을 전달합니다.
sweep.yaml
run.py에서 argparse 모듈을 사용해 이러한 명령줄 인수를 파싱할 수 있습니다:
run.py
불리언 인수
argparse는 기본적으로 불리언 문자열을 해석하지 않으므로 트레이닝 스크립트에서 추가 처리가 필요합니다.
argparse 모듈은 기본적으로 불리언 인수를 지원하지 않습니다. 불리언 인수를 정의하려면 action 매개변수를 사용하거나, 불리언 값을 나타내는 문자열을 불리언 유형으로 변환하는 맞춤형 함수를 사용할 수 있습니다.
예를 들어, 다음 코드 스니펫을 사용해 불리언 인수를 정의할 수 있습니다. ArgumentParser에 인수로 store_true 또는 store_false를 전달하세요:
str2bool 함수를 정의합니다: