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. 위의 모델링 함수로 KerasClassifier를 만든다.
model = KerasClassifier(build_fn= build_model)
3. 조합할 파라미터를 딕셔너리로 세팅한다.
my_param = {'batch_size': [10,20,32], 'epochs': [20,30,50], 'optimizer': ['adam', 'rmsprop']}
4. 그리드 서치 함수를 만든다.
grid = GridSearchCV(estimator= model, param_grid= my_param, scoring= 'accuracy')
5. 내가 정한 모든 파라미터를 학습해보도록 실행한다.
grid = GridSearchCV(estimator= model, param_grid= my_param, scoring= 'accuracy')
여러 조합을 학습하다 보니 시간이 오래 걸린다...
6. 학습이 끝나면 베스트 파라미터, 스코어, 모델 등을 확인할 수 있다.
grid.best_params_
grid.best_score_
grid.best_estimator_
'Machine Learning > Deep Learning' 카테고리의 다른 글
Tensorflow - Learning rate(학습률)을 설정하는 방법 (0) | 2022.12.29 |
---|---|
Tensorflow - regression(수치예측) 문제의 인공신경망(ANN) (0) | 2022.12.28 |
Tensorflow에서 학습시 batch size, step, epoch 란? (0) | 2022.12.28 |
Tensorflow - 이진 분류 문제의 인공신경망(ANN) (0) | 2022.12.28 |
원핫인코딩 할 시 주의할 점 - Dummy Variable Trap (0) | 2022.12.28 |