개발학습일지

[AI] 딥러닝 오버피팅 되는 것을 방지하기 위한 EarlyStopping, Callback 본문

AI/Deep Learning

[AI] 딥러닝 오버피팅 되는 것을 방지하기 위한 EarlyStopping, Callback

처카푸 2024. 4. 17. 23:44

텐서플로우 EarlyStopping, Callback

 

Callback

: 내가 만든 함수를 프레임워크가 실행시켜주는 것이다

EarlyStopping

: 지정된 에포크 횟수동안 성능 향상이 없으면 자동으로 훈련이 멈춘다

 

비어있는 인공지능을 만들고 코드를 작성해주면 된다

# 비어있는 인공지능
model = build_model()

# patience를 10으로 설정하면, 10번의 에포크동안 성능향상이 없으면, 학습을 끝내는 것이다
early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)

# 학습할때 callbacks을 입력 
epoch_history = model.fit(X_train, y_train, epochs=100000, validation_split=0.2, callbacks=[early_stop] )
# 아무리 epochs의 수가 많아도 성능향상이 없으면 멈춘다

 

학습결과 시각화하기

import matplotlib.pyplot as plt

plt.plot(epoch_history.history['loss'])
plt.plot(epoch_history.history['val_loss'])
plt.legend(['loss','val_loss'])
plt.savefig('loss.jpg')
plt.show()

plt.plot  EarlyStopping, Callback