• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

val_loss값이 계속 커지는 현상이 왜 나오나요?

23.07.29 10:05 작성 조회수 314

0

안녕하세요.

코드를 타이핑하며 실행해 보는데, 강의 화면과는 달리 vla_loss값이 점점 커지는 결과가 나왔습니다.

처음에는 제가 타이핑을 잘못해서 그런가 했는데, 선생님이 제공해주신 코드를 그대로 실행해도 비슷한 결과가 나왔습니다.

여러 번 런타임을 재실행하고 해봐도 마찬가지입니다.

왜 이런 현상이 나타나나요?

(kaggle에서 실행했습니다)

답변 2

·

답변을 작성해보세요.

0

안녕하십니까,

저도 테스트를 해보는데, 현재 Tensorflow version 2.12로 해보면, 강의를 만들었을 때와 다르게 검증 데이터에서 오락가락(?)하는 부분이 있군요. 이건 좀 더 테스트가 필요할 것 같습니다.

좀 더 테스트 해보고 답변 드리도록 하겠습니다.

kjyn0124 님도 답변 감사합니다.

먼저 현재 tensorflow 2.12에서는 강의 실습 화면과 다르게 모델의 검증 데이터 평가 지표가 오락 가락합니다.

일단 kaggle에서 tensorflow 버전을 아래와 같이 2.8로 downgrade 해서

!pip install tensorflow==2.8.0

이후 아래와 같이 버전이 2.8로 나오는지 확인해 주십시요.

from tensorflow as tf

print(tf.__version__)

 

2.8에서는 성능이 괜찮게 나오는데 2.12에서는 왜 그런지 아직 원인을 찾지 못했습니다. 여러가지로 테스트 중인데, 원인 파악에 시간이 좀 더 필요할 것 같습니다. 일단은 2.8로 강의 수강을 진행 부탁드립니다.

0

kjyn0124님의 프로필

kjyn0124

2023.07.29

y 값으로 one-hot encoding 된 label인 train_oh_labels를 넣으셔야 하는데 그냥 train_label을 넣으셔서 생긴 문제 같습니다. 그래서 val_loss 뿐만 아니라 loss 값도 커지고.... 제대로 학습이 이뤄지지 않고 있는 듯 합니다.

답변 감사합니다.

이번 코드는 원핫인코딩을 하지 않은 것이라 loss 함수로 sparse_categorical_crossentropy를 사용했습니다.

model.compile(optimizer=Adam(), loss='sparse_categorical_crossentropy', metrics=['accuracy'])

강의 중에

원핫인코딩 → categorical_crossentropy

인코딩 안하면 → sparse_categorical_crossentropy

사용하라고 하셨는데, 둘 간의 성능 차이가 있나요?