본문 바로가기
  • 콩's 코딩노트
TensorFlow

TensorFlow 에서 GridSearch 하는 방법

by Cong_S 2022. 6. 10.
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense

GridSearch 할 때 필요한 라이브러리들이다.

def build_classifier(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

1. GridSearch 를 하기 위해 먼저 모델링을 해주어야한다.

위는 ANN을 모델링하는 함수이다.

 

 

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

2.  다음 개발자가 직접 설정해주어야하는 Hyper Parameter 들을 원하는 조건들에 딕셔너리의 밸류 값에 넣어준다.

 

grid_search = GridSearchCV(estimator= model, param_grid= my_parameters, scoring= 'accuracy')

3. 그 다음 import 해온 GridSearch 함수를 가져와 

estimator 에 모델링한 ANN을 넣어주고 

param_grid 에 위에서 입력한 Hyper Parameter 딕셔너리를 넣어준다.

scoring은 원하는 값으로 넣어주자.

 

grid_search.fit(X_train, y_train)

4. 그 다음 fit 함수를 이용해 인공지능을 학습용 데이터로 학습시킨다,

 

여러 조건들을 경우의 수만큼 다 넣어가며 계산해야하므로 시간이 꽤 오래 걸릴 수 있다.

 

모든 계산이 끝났다면 best_params_ 속성으로 가장 높은 점수를 받은 파라미터 값들을 확인하거나

best_score_로 최고 점수를 확인할 수 있다.

 

grid_search.best_estimator_

모든 과정이 끝난 GridSearch는 변수에 저장해 인공지능으로 사용할 수 있다.

댓글