명령줄에서 sweep을 초기화하고 sweep agent를 시작하려면 YAML 파일에 sweep 설정을 정의하세요. Python 스크립트 또는 노트북 내에서 sweep을 완전히 초기화하고 시작하려면 Python 딕셔너리에 sweep을 정의하세요.
기본 구조
name 키), 검색할 parameters(parameters 키), 매개변수 공간을 검색하는 방법(method 키) 등 sweep 검색의 속성을 정의하세요.
예를 들어, 다음 코드 스니펫은 YAML 파일과 Python 딕셔너리에 정의된 동일한 sweep 설정을 보여줍니다. 이 sweep 설정에는 program, name, method, metric, parameters의 다섯 가지 최상위 키가 지정되어 있습니다.
- CLI
- Python 스크립트 또는 노트북
명령줄(CLI)에서 대화형으로 sweeps를 관리하려면 YAML 파일에 sweep 설정을 정의하세요.
config.yaml
parameters 키 안에는 learning_rate, batch_size, epoch, optimizer 키가 중첩되어 있습니다. 지정한 각 중첩 키에는 하나 이상의 값, 분포, 확률 등을 제공할 수 있습니다. 자세한 내용은 Sweep configuration options의 parameters 섹션을 참조하세요.
이중 중첩 매개변수
parameters 키를 하나 더 추가하세요.
다음 예시는 nested_category_1, nested_category_2, nested_category_3의 세 가지 중첩 매개변수가 포함된 Sweep 설정을 보여줍니다. 각 중첩 매개변수에는 momentum과 weight_decay라는 두 개의 추가 매개변수가 포함됩니다.
nested_category_1, nested_category_2, nested_category_3는 자리 표시자입니다. 사용 사례에 맞는 이름으로 바꾸세요.- CLI
- Python 스크립트 또는 노트북
Sweep 설정 템플릿
hyperparameter_name은 하이퍼파라미터 이름으로, <>로 묶인 모든 값은 적절한 값으로 바꾸세요.
config.yaml
!!float Operator를 추가하세요. 그러면 값이 부동소수점 수로 캐스팅됩니다. 예를 들어 min: !!float 1e-5와 같습니다. 명령어 예시를 참조하세요.
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)를 실행하는 명령을 정의하며, sweep이 실행될 때 ${env}, ${interpreter}, ${program} 매크로가 적절한 값으로 대체됩니다.
--batch_size=${batch_size}, --test=True, --optimizer=${optimizer} 인수는 맞춤형 매크로를 사용해 sweep 설정에 정의된 batch_size, test, optimizer 매개변수의 값을 전달합니다.
sweep.yaml
run.py)에서 argparse 모듈을 사용해 이러한 명령줄 인수를 파싱할 수 있습니다.
run.py
불리언 인수
argparse 모듈은 기본적으로 불리언 인수를 지원하지 않습니다. 불리언 인수를 정의하려면 action 매개변수를 사용하거나, 불리언 값을 나타내는 문자열을 불리언 유형으로 변환하는 맞춤형 함수를 사용할 수 있습니다.
예를 들어, 다음 코드 스니펫을 사용해 불리언 인수를 정의할 수 있습니다. ArgumentParser에 인수로 store_true 또는 store_false를 전달하세요.
str2bool 함수를 정의합니다.