def build_model():
model = Sequential()
model.add(Dense(units = 4, activation = 'relu', input_shape = (8, )))
model.add(Dense(units = 20, activation = 'relu'))
model.add(Dense(units = 10, activation = 'relu'))
model.add(Dense(units = 1, activation = 'linear'))
# 옵티마이저의 learning rate를 설정하는 방법
model.compile(tf.keras.optimizers.RMSprop(learning_rate = 0.001), loss = 'mse', metrics = ['mse', 'mae'])
#model.compile('adam', 'mse')
return model
model = build_model()
early_stop = tf.keras.callbacks.EarlyStopping(monitor = 'val_loss', patience = 10)
epoch_history = model.fit(X_train, y_train, epochs = 100000, validation_split = 0.2, callbacks = [early_stop])
# 콜백이란?? 프레임워크가 실행하는 코드. 코드 실행을 프레임워크에 맡기는 것
monitor 파라미터에는 감시할 평가 데이터를 대입하고 patience에는 몇번 동안 개선이 없으면 학습을 중단할 건지 대입한다. 이걸 fit의 callbacks에 배열로 대입하면 된다.epochs에 십만을 대입했지만 실제로는 200번대 에서 중단했다.
'인공지능 > 텐서플로우' 카테고리의 다른 글
여러 클래스로 분류할 때, 아웃풋 노드에서 사용하는 액티베이션 함수 softmax (0) | 2022.06.13 |
---|---|
Flatten 라이브러리 사용하는 이유 (0) | 2022.06.13 |
validation 데이터란 무엇이고 코드에서 사용하는 방법 (validation_split) (0) | 2022.06.13 |
learning rate를 옵티마이저에서 셋팅하는 방법 (0) | 2022.06.13 |
tensorflow GridSearch를 이용한, 최적의 하이퍼 파라미터 찾기 (0) | 2022.06.10 |