[Boostcamp 2주차] Hyperparameter Tuning

yoonene·2022년 1월 28일
0

Boostcamp AI Tech

목록 보기
11/27

Hyperparameter Tuning

  • 사람이 지정하는 파라미터
    ex) Learning Rate, optimizer, model size..
  • 요즘은 데이터가 매우 큰 빅데이터 시대이기 때문에 하이퍼 파라미터에 의해 성능이 크게 좌우되지 않는 편.
    데이터 > 모델 > 하이퍼파라미터 순으로 조정의 효과가 있음.
  • 가장 기본적인 Hyperparameter Tuning
    • Grid Search / Random Search

Ray

  • multi-node multi processing 지원 모듈
  • ML/DL의 병렬 처리를 위해 개발
  • 현재 분산병렬 ML/DL 모듈의 표준
  • Hyperparameter Search를 위해 다양한 모듈 제공

example

data_dir = os.path.abspath("./data")
load_data(data_dir)
# search space 지정
config = {
"l1": tune.sample_from(lambda _: 2 ** np.random.randint(2, 10)),
"l2": tune.sample_from(lambda _: 2 ** np.random.randint(2, 10)),
"lr": tune.loguniform(1e-4, 1e-1),
"batch_size": tune.choice([16, 32, 64, 128])
}
# ASHAScheduler: 가망없는 metric 버리기
scheduler = ASHAScheduler(
metric="loss", mode="min", max_t=max_num_epochs, grace_period=1,
reduction_factor=2)
# CLIReporter: 결과 출력 양식
reporter = CLIReporter(
metric_columns=["loss", "accuracy", "training_iteration"])
# 돌리기
result = tune.run(
partial(train_cifar, data_dir=data_dir),
resources_per_trial={"cpu": 4, "gpu": gpus_per_trial},
config=config, num_samples=num_samples,
scheduler=scheduler,
progress_reporter=reporter)
profile
NLP Researcher / Information Retrieval / Search

0개의 댓글