# config에 search space 지정
config = {
"l1": tune.sample_from(lambda _:2**np.random.randint(2,9)),
"l2": tune.sample_from(lambda _:2**np.random.randint(2,9)),
"lr": tune.sample_from(1e-4, 1e-1)
"batch_size": tune.choice([2, 4, 6, 8, 16])
}
# 학습 스케줄링 알고리즘 지정
scheduler = ASHAScheduler(
metric="loss", mode="min", max_t=max_num_epochs, grace_period=1, reduction_factor=2)
)
# 결과 출력 양식 지정
reproter = CLIReporter(
metric_columns=["loss", "acc", "training_iter"]
)
# 병렬 처리 양식으로 학습 시행
result = tun.run(
partial(train_cifar, data_dir=data_dir), # 데이터를 쪼개는것
resources_pre_trial={"cpu":2, "gpu":gpus_per_trial}, # 사용할 수 있는 자원 개수
config=config, num_samples=num_samples, #config와 sample 수
scheduler=scheduler, # scheduler
progress_reproter=reporter # 결과출력 양식
)