군침이 싹 도는 코딩
텐서플로우를 이용한 그리드 서치 방법 본문
그리드 서치의 정의는 이 글을 참고 : https://mugoori.tistory.com/59
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=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_model)
>>>
<ipython-input-210-fda71031c374>:1: DeprecationWarning: KerasClassifier is deprecated, use Sci-Keras (https://github.com/adriangb/scikeras) instead. See https://www.adriangb.com/scikeras/stable/migration.html for help migrating.
model = KerasClassifier(build_fn=build_model)
# 그리드 서치를 위해 그리드서치용 클래시파이어를 만든다
안에 빌드 fn에는 위에 만들어뒀던 빌드 모델 함수를 넣어준다
my_param = {'batch_size':[10,20,32],'epochs':[20,30,50],'optimizer':['adam','rmsprop']}
grid = GridSearchCV(estimator= model, param_grid= my_param, scoring='accuracy')
# 그리드 서치를 위해 원하는 조건을 딕셔너리로 만들어 변수에 저장하고
estimator 에는 인공지능 모델
param_grid 에는 원하는 조건을 넣어두었던 변수 my_param
scoring 은 무엇으로 판단하는지인데 분류이므로 정확도(accuracy)
grid.fit(X_train,y_train)
# 이제 트레인 데이터를 넣으면 18개의 조합으로 하나씩 돌아가고 있는것이 보인다
'Python > Deep Learning' 카테고리의 다른 글
번외) 새로운 데이터를 통해 가격 예측 (0) | 2022.12.28 |
---|---|
텐서플로우 리그레션 문제 모델링 하는 방법 (0) | 2022.12.28 |
텐서플로우로 분류의 문제 모델링 하는 방법 (0) | 2022.12.27 |
Dummy variable trap (0) | 2022.12.27 |
fit 함수에서 epoch 와 batch_size에 대한 설명 (0) | 2022.12.27 |