강의 소개
이번 시간에는 AutoML 을 직접 구현해보겠습니다.
AutoML을 하기 위해서 모델을 쉽게 만들 수 있어야겠죠. yaml 파일에서 모델을 만드는 법을 학습 합니다.
모델을 쉽게 만들 수 있게 되었으면 Optuna를 사용하여 자동으로 모델을 찾는 법을 학습 합니다.
Further Reading

if __name__=="__main__":
study = optuna.create_study(directions="maximize")
study.optimize(objective, n_trials=500)
print(f"Best trial {study.best_trial}")




activation = trial.suggest_categorical(
name="m2/activation",
choices=["ReLU","ReLU6""Hardswish"]
)
activation = trial.suggest_float(
name="learning_rate",
low=1e-5,
high=1e-3
)
activation = trial.suggest_int(
name="epochs",
low=10,
high=30,
step=10
)
#Sample optimizer
optimizer = trial.suggest_categorical(
name="optimizer",
choices=["Adam","SGD""Adagrad","AdamW"]
)
#Optimizer args are conditional!
if optimizer=="Adam":
#More aggressive lr
lr = trial.suggest_float(name="lr", low=1e-5, high=1e-3)
#Adam only Params
beta1 = trial.suggest_float(name="beta1", low=0.8, high=0.95)
beta2 = trial.suggest_float(name="beta2", low=0.9, high=0.9999)
elif optimizer=="SGD":
#Conservative lr
lr = trial.suggest_float(name="lr", low=1e-6, high=1e-4)
#SGD only Params
momentum = trial.suggest_float(name="momentum", low=0.0, high=0.95)
def sample_hyperparam(trial) -> Dict[str, Any]:
"""Sample hyperparam from user-specified search space
Returns:
Dict[str, Any]: sampled hyperparam configs
"""
epochs = trial.suggest_int(name="epochs", low=10, high=30, step=10)
batch_size = trial.suggest_categorical(name="batch_size", [16,32,64])
lr = trial.suggest_float(name="lr", low=1e-5, high=1e-3)
#Sample optimizer
optimizer = trial.suggest_categorical(
name="optimizer",
choices=["Adam","SGD""Adagrad","AdamW"]
)
#Optimizer args are conditional!
if optimizer=="Adam":
#More aggressive lr
lr = trial.suggest_float(name="lr", low=1e-5, high=1e-3)
#Adam only Params
beta1 = trial.suggest_float(name="beta1", low=0.8, high=0.95)
beta2 = trial.suggest_float(name="beta2", low=0.9, high=0.9999)
elif optimizer=="SGD":
#Conservative lr
lr = trial.suggest_float(name="lr", low=1e-6, high=1e-4)
#SGD only Params
momentum = trial.suggest_float(name="momentum", low=0.0, high=0.95)
