GridSearch는 저번시간에 배웠던 batch_size와 epoch를 설정하는 부분에서 두개의 파라미터의 최적점을 찾는것을 의미한다. 왜냐하면 batch_size와 epoch는 사람이 설정해야 하는 부분이기 때문이다. 따라서 GridSearch를 이용하여 최적화 점을 찾아 설정하는데 도움이 될수 있도록 할수 있는것이다.
#GridSearchCV 함수 호출
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_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)
# 그리드 서치에 들어갈 파라미터를 설정한다.
my_param={'batch_size':[10,20,32],'epochs':[20,30,50],'optimizer':['adam','rmsprop']}
grid=GridSearchCV(estimator=model,param_grid=my_param,scoring='accuracy')
#모델학습
grid.fit(X_train,y_train)
실제로 이 코드를 진행하면 일일이 딥러닝을 진행중이라 시간이 오래걸린다.
학습이 다 끝났다면 베스트 파라미터를 알려주는 함수를 실행시킨다.
grid.best_params_
>> {'batch_size': 10, 'epochs': 30, 'optimizer': 'adam'}
위에 결과처럼 최적의 파라미터를 학습을 통해 알려준다.
반응형
'딥러닝' 카테고리의 다른 글
딥러닝(6) validation split (0) | 2022.12.29 |
---|---|
딥러닝(5) 텐서플로우로 리그레션 문제 모델링 하는 방법 (0) | 2022.12.28 |
딥러닝(3) dummy variable trap (0) | 2022.12.27 |
딥러닝(2) 텐서플로우에서 학습시 epoch와 batch_size에 대한 설명 (0) | 2022.12.27 |
딥러닝(1) 딥러닝 환경 준비 (0) | 2022.12.27 |