본문 바로가기
Deep Learning/keras

패션데이터를 이용한 활성화함수, 최적화함수 비교

by leehii 2022. 9. 16.

 

패션데이터를 불러와 train, test 데이터로 나눠준후

.shape로 크기확인


답데이터 인코딩

 

 

model1 : 활성화함수에 sigmoid / 최적화 함수에 SGD

 

 

model2 : 활성화함수에 relu / 최적화 함수에 softmax

 

model3 : 활성화함수에 relu / 최적화 함수에 adam

 

 

- model2가 학습이 제대로 되지 않은 것은 우리의 데이터에 비해

활성화함수와 최적화함수가 맞지 않아  learning rate가 데이터에 비해

크게 잡혔기 때문 (최적값으로 수렴하는게 아니라 오히려 발산해서 학습이 불가능해짐  >>  loss : nan 뜨는 것을 보고 추론해볼 수 있음 )

 

- 최적화함수의 learning rate(학습률)을 낮춰서 안정적으로 학습을 시도해보면 됨

 
 

 

EarlyStopping : 조기 학습 중단 기능

ModelCheckPoint : 모델 저장

 

1. 모델 저장

 

# 저장 경로 및 파일명 형태를 설정

save_path = '/content/drive/MyDrive/Colab Notebooks/model/FashionModel_{epoch:03d}_{val_acc:.4f}.hdf5'

 

# d(digit) : 10진수 형태, 03 -> 0이 3개 붙어있는 형태의 자리수(001,002,003 ...)

# f(float) : 실수(소수점) 형태 .4 -> 소수점 4자리 까지 형태의 자리수(0.001,0.002,0.003 ...)

# hdf5 : 모델이 저장되는 파일의 확장자명

 

 

f_mckp = ModelCheckpoint(filepath = save_path,

                         monitor = 'val_acc',    

                         save_best_only = True,  

                         mode = 'max',           

                         verbose = 1    )     

 

 

2. 조기 학습 중단

f_early = EarlyStopping(monitor = 'val_acc',  patience = 3)

 

# 모델 학습시 val_acc가 3번의 epoch를 돌 동안 값이 개선되지 않으면 학습을 중단

 

 

callbacks를 이용해 최적화모델 확인을 위한 모델 체크포인트와 조기중단학습 설정

 

 

epochs가 50이었지만 중단됨