인프런 커뮤니티 질문&답변

HANJU HAN님의 프로필 이미지
HANJU HAN

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

model.layers[i].trainable = True

작성

·

526

0

안녕하세요!

raccoon dataset pretrainig할때 궁금한게 있습니다.

처음에 50번 학습하고 이후 model.layers[i].trainable = True로 바꿔준 후 50번 더 학습을 하는데요.

처음부터 모든 레이어를 trainable하게 바꿔주지않고 저렇게 학습하는 이유가 궁금합니다!

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

일반적으로 CNN의 Pretrained 모델을 기반으로 다른 데이터 세트를 전이 학습(Transfer learning)할 때 이 방식을 적용하곤 합니다. 가령 imagenet으로 pretrained된 Resnet 모델의 Weight값으로 새로운 데이터 세트를 학습할 때 이 pretrained된 weight값으로 Feature map 생성 layer들의 weight값을 초기화 하고 해당 layer들을 학습하지 않습니다. 그리고 feature map layer에 연결된 classification layer들만 학습을 합니다.(이렇게 처음 50회를 학습합니다)

이렇게 classification layer를 학습 한 뒤에는 이제 feature map과 classification layer를 모두 포함한 전체 layer를 다시 50회 학습합니다. 그래서 model.layers[i].trainable = True로 변경합니다.

보통 이런식으로 학습하면 처음부터 feature map layer를 random값으로 시작하지 않고 imagenet pretrained된 weight값을 이용할 수 있으므로 선호되는 방식입니다. 

감사합니다.

HANJU HAN님의 프로필 이미지
HANJU HAN

작성한 질문수

질문하기