# 옵티마이저의 learning rate설정하는방법
model.compile(tf.keras.optimizers.RMSprop(learning_rate=0.001), loss= 'mse',metrics= ['mse','mae'])
return model
실습
Auto MPG 데이터셋을 사용하여 1970년대 후반과 1980년대 초반의 자동차 연비를 예측하는 모델을 만듭니다. 이 정보에는 실린더 수, 배기량, 마력(horsepower), 공차 중량 같은 속성이 포함됩니다.

X = df.iloc[:,1:-1]
y = df['mpg']
from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer( [ ('encoder',OneHotEncoder(), [6] ) ] , remainder='passthrough' )
X = ct.fit_transform(X)
X = X[:,1:]
from sklearn.preprocessing import MinMaxScaler
scaler_X = MinMaxScaler()
X = scaler_X.fit_transform(X)
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size= 0.2 , random_state=0)
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
def build_model():
model = Sequential()
model.add(Dense(64,'relu',input_shape= (8,)))
model.add(Dense(64,'relu'))
model.add(Dense(1,'linear'))
# 옵티마이저의 learning rate설정하는방법
model.compile(tf.keras.optimizers.RMSprop(learning_rate=0.001), loss= 'mse',metrics= ['mse','mae'])
return model
model = build_model()
model.summary()
X_train.shape
epoch_history = model.fit(X_train,y_train, epochs= 1000, validation_split=0.2)
out
dict_keys(['loss', 'mse', 'mae', 'val_loss', 'val_mse', 'val_mae'])
in
epoch_history.history['mse']
out
결과의 마지막부분만 복사 붙여넣기 한 결과
4.99752950668335, 4.822786331176758, 5.020915985107422, 4.920413017272949, 4.853817939758301, 5.119784832000732, 4.810336112976074, 4.938455104827881, 4.933769702911377]
이 그래프를 보면 수 백번 에포크를 진행한 이후에는 모델이 거의 향상되지 않는 것 같습니다. model.fit 메서드를 수정하여 검증 점수가 향상되지 않으면 자동으로 훈련을 멈추도록 만들어 보죠. 에포크마다 훈련 상태를 점검하기 위해 EarlyStopping 콜백(callback)을 사용하겠습니다. 지정된 에포크 횟수 동안 성능 향상이 없으면 자동으로 훈련이 멈춥니다.
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])
# 콜백이란??
# 프레임 워크가 실행하는 코드. 코드 실행을 프레임워크에 맡기는 것.
결과의 마지막부분만 복사 붙여넣기 한 결과

in
plot_history(epoch_history)
out

'Deep Learning' 카테고리의 다른 글
Deep Learning : EarlyStopping 라이브러리 사용법 (0) | 2022.06.13 |
---|---|
Deep Learning : validation data란 무엇이고, code에서 사용하는 방법 / 파라미터 validation_split (0) | 2022.06.13 |
Deep Learning : 텐서플로우로, 분류의 문제 모델링 하는 방법 (0) | 2022.06.10 |
Deep Learning : 텐서플로우에서 학습시 epoch와 batch_size에 대한설명 (0) | 2022.06.10 |
Deep Learning with Neural Networks (0) | 2022.06.09 |