from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
from keras.models import Sequential
from keras.layers import Dense
def build_classifier(optimizer):
# 모델링
model = Sequential()
model.add(Dense(units = 6, activation = 'relu', input_shape = (11,)))
model.add(Dense(units = 6, activation = 'relu'))
model.add(Dense(units = 1, activation = 'sigmoid'))
model.compile(optimizer = optimizer, loss = 'binary_crossentropy', metrics = ['accuracy'])
return model
model = KerasClassifier(build_fn = build_classifier)
my_parameters = {'epochs':[30, 50], 'batch_size':[10,20], 'optimizer':['adam', 'rmsprop']}
grid_search = GridSearchCV(estimator = model, param_grid = my_parameters, scoring = 'accuracy')
grid_search.fit(X_train, y_train)
KerasClassifier와 GridSearchCV를 import한다
build_fn을 작성하고 대입한다.
하이퍼 파라미터들을 딕셔너리 형태로 만들고 대입한다
grid_search.best_params_
grid_search.best_score_
model2 = grid_search.best_estimator_
grid_search.best_params_는 최고의 파라미터를 딕셔너리로 리턴하고
grid_search.best_score_는 최고의 모델의 평가 점수를 리턴한다 위의경우 accuracy 정확도이다.
model2는 최적의 모델 그 자체이다.
'인공지능 > 텐서플로우' 카테고리의 다른 글
validation 데이터란 무엇이고 코드에서 사용하는 방법 (validation_split) (0) | 2022.06.13 |
---|---|
learning rate를 옵티마이저에서 셋팅하는 방법 (0) | 2022.06.13 |
tensorflow로 regression 문제 모델링 하는 방법 (0) | 2022.06.10 |
tensorflow로 분류의 문제 모델링 하는 법 (0) | 2022.06.10 |
tensorflow에서 학습시 epochs와 batch_size (0) | 2022.06.10 |