모델 하이퍼파라미터 튜닝
이제 모델에 다양한 파라미터를 적용해 보고 성능이 얼마나 좋아지는지 확인해 볼 차례예요!
직전 연습 문제에서 만든 create_model() 함수는 바로 사용하실 수 있어요.
RandomizedSearchCV 객체를 실제로 학습시키면 시간이 너무 오래 걸리기 때문에, 얻을 수 있는 결과는 show_results() 함수에서 출력되도록 되어 있어요.
모든 구성을 마친 뒤 콘솔에서 직접 random_search.fit(X,y)를 실행해 작동을 확인해 볼 수도 있지만, 연습 문제 시간 제한에 걸릴 가능성이 커요(시도하신다면 먼저 코드를 복사해 두세요. 진행 중인 작업을 잃을 수 있어요!).
KerasClassifier 객체를 만들 때 선택 인자인 epochs와 batch_size를 굳이 지정할 필요는 없어요. 이미 랜덤 서치에 params로 전달하고 있고, 이 방식으로 잘 동작하거든요.
이 연습은 강의의 일부입니다
Keras로 시작하는 딥 러닝
연습 안내
tensorflow.keras의 scikit_learn 래퍼에서KerasClassifier를 가져오세요.KerasClassifier를 인스턴스화할 때create_model함수를 사용하세요.activation에는 'relu'와 'tanh'를,batch_size에는 32, 128, 256을,epochs에는 50, 100, 200을,learning_rate에는 0.1, 0.01, 0.001을 설정하세요.- 변환한
model과 선택한params를 사용해RandomizedSearchCV객체를 구성하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import KerasClassifier from tensorflow.keras scikit learn wrappers
from tensorflow.keras.wrappers.____ import ____
# Create a KerasClassifier
model = KerasClassifier(build_fn = ____)
# Define the parameters to try out
params = {'activation': [____, ____], 'batch_size': [____, ____, ____],
'epochs': [____, ____, ____], 'learning_rate': [____, ____, ____]}
# Create a randomize search cv object passing in the parameters to try
random_search = RandomizedSearchCV(____, param_distributions = ____, cv = KFold(3))
# Running random_search.fit(X,y) would start the search,but it takes too long!
show_results()