반응형
텐서플로우(Tensorflow)로 ANN (DNN) 을 만들고, 최적의 모델을 찾기 위해서 GridSearchCV 를 이용한다.
먼저 모델을 만드는 함수를 작성한다.
함수의 파라미터로, 옵티마이저(optimizer)를 받는다.
def build_classifier(optimizer):
classifier = Sequential()
classifier.add(Dense(units = 6, activation = 'relu', input_dim = 11))
classifier.add(Dense(units = 6, activation = 'relu'))
classifier.add(Dense(units = 1, activation = 'sigmoid'))
classifier.compile(optimizer = optimizer, loss = 'binary_crossentropy', metrics = ['accuracy'])
return classifier
위의 모델 만드는 함수로 KerasClassifier 를 만든다.
classifier = KerasClassifier(build_fn = build_classifier)
조합할 파라미터를 딕셔너리로 셋팅한다. 에포크 수, 배치 사이즈, 옵티마이저 등이 해당된다.
parameters = {'batch_size': [25, 32],
'epochs': [80, 100],
'optimizer': ['adam', 'rmsprop']}
그리드 서치 함수를 만든다.
위의 변수들을 넣어주고, 크로스 밸리데이션 (Cross Validation) 갯수도 넣어준다.
grid_search = GridSearchCV(estimator = classifier,
param_grid = parameters,
scoring = 'accuracy',
cv = 10)
마지막으로, 학습하도록 실행한다.
grid_search = grid_search.fit(X_train, y_train)
실행하면 아래 화면이 한~~참 동안 나온다. 베스트 모델이 나왔을때 checkpoint 를 이용해서, 자동으로 저장하도록 하면 된다.
학습이 끝나면, 베스트 파라미터와 베스트 스코어를 확인해 볼 수 있다.
best_parameters = grid_search.best_params_
best_accuracy = grid_search.best_score_
반응형
'DeepLearining' 카테고리의 다른 글
Learning Curve - 텐서플로우 딥러닝 (0) | 2021.03.12 |
---|---|
텐서플로우의 모델, weight(가중치) 저장하고 불러오기 (0) | 2021.02.24 |
옵티마이저 (Optimizer) 종류 - 인공지능, 머신러닝, 데이터마이닝 (0) | 2020.12.10 |
Label Encoding and One Hot Encoding (0) | 2017.10.29 |
딥러닝의 모델 성능 평가2 - manual 로 varification dataset 만들기 (0) | 2017.10.29 |