Deep Learning

Tensorflow - GridSearch 를 이용하여, 최적의 하이퍼파라미터 찾기

yugyeong 2022. 12. 27. 17:28

GridSearch 를 이용한, 최적의 하이퍼 파라미터 찾기

 

 

필요한 라이브러리를 임포트 한다.

# Tuning the ANN
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense

 

 

 

텐서플로우로 그리드 서치 하기 위해서

1. 인공지능 모델링 함수 정의

def build_model(optimizer):
  # 모델링
  model = Sequential()
  model.add( Dense(units= 6, activation= 'relu', input_shape= (11, ) ) )
  model.add( Dense(units= 8, activation= 'relu'))
  model.add( Dense(units= 1, activation= 'sigmoid'))
  model.compile(optimizer= optimizer , loss= 'binary_crossentropy', metrics= ['accuracy'])
  return model

 

2. 인공지능 모델링

model = KerasClassifier(build_fn= build_model)

 

3. 파라미터 정의

my_param = { 'batch_size' : [10, 20, 32], 'epochs' : [20, 30, 50], 'optimizer' : ['adam','rmsprop']}

 

4. GridSearch 모델링 & 학습

grid = GridSearchCV(estimator= model, param_grid= my_param, scoring= 'accuracy')

# X_train과 y_train 을 fit 한다
grid.fit(X_train, y_train)

 

 

5. 최적의 파라미터 확인

grid_search.best_params_
>>> {'batch_size': 10, 'epochs': 50, 'optimizer': 'adam'}

grid_search.best_score_
>>> 0.8487500000000001

grid_search.best_estimator_
>>> <keras.wrappers.scikit_learn.KerasClassifier at 0x7fbbb84f0d10>