📝딥러닝 밸리데이션
val = validation
밸리데이션이란, 에포크가 한번 끝날때 마다 학습에 사용하지 않은 데이터로 시험을 보는 것을 말한다
테스트는 인공지능이 완전히 학습이 다 끝난 상태에서 평가하는 것이고
밸리데이션은 학습중에(에포크 끝날때마다) 평가하는 것을 말한다
validation_split : 학습할때 학습 데이터의 n% 는 테스트용으로 쓰겠다고 지정
# 인공지능 함수로 생성
def build_model() :
model = Sequential()
model.add( Dense( units= 64, activation= 'relu', input_shape= (9,) ) )
model.add( Dense( units= 64, activation= 'relu') )
model.add( Dense( units=1, activation= 'linear' ) )
model.compile( optimizer= tf.keras.optimizers.Adam(learning_rate=0.001), loss= 'mse', metrics= [ 'mse', 'mae' ])
return model
# 변수에 저장
model = build_model()
# 학습할때 학습 데이터의 20% 는 테스트용으로 쓰겠다고 validation_split 으로 지정
epochs_history = model.fit(X_train, y_train, epochs= 200, validation_split= 0.2)
validation_data : 밸리데이션 데이터를 따로 준비한 경우에 사용
※ 따로 데이터는 준비하지 않았지만 학습용 데이터를 사용하지 않고싶을때 테스트 데이터를 사용
epoch_history = model.fit( X_train, y_train, epochs=10, validation_data= (X_test, y_test) )
epoch_history 객체에 저장된 통계치를 사용해 모델의 훈련 과정을 시각화하기
import matplotlib.pyplot as plt
def plot_history(history) :
hist = pd.DataFrame(history.history)
hist['epoch'] = history.epoch
plt.figure(figsize = (8, 12))
plt.subplot(2, 1, 1)
plt.xlabel('Eopoch')
plt.ylabel('Mean Abs Error [MPG]')
plt.plot(hist['epoch'], hist['mae'], label = 'Train Error')
plt.plot(hist['epoch'], hist['val_mae'], label = 'Val Error')
plt.ylim([0,5])
plt.legend()
plt.subplot(2, 1, 2)
plt.xlabel('Eopoch')
plt.ylabel('Mean Squared Error [MPG]')
plt.plot(hist['epoch'], hist['mse'], label = 'Train Error')
plt.plot(hist['epoch'], hist['val_mse'], label = 'Val Error')
plt.ylim([0,20])
plt.legend()
plt.show()
plot_history(epochs_history)
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] Flatten Library (1) | 2022.12.28 |
---|---|
[Deep Learning] TensorFlow EarlyStopping, Callback (0) | 2022.12.28 |
[Deep Learning] TensorFlow optimizer learning rate 셋팅 (0) | 2022.12.28 |
[Deep Learning] epochs history 차트 (0) | 2022.12.28 |
[Deep Learning] DNN TensorFlow Regression 수치예측 문제 모델링 (1) | 2022.12.28 |
댓글