본문 바로가기
C.W.K.
Stream
Lesson 02 of 07 · published

Keras Applications

~8 min · transfer

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

바로 사용할 수 있는 내장 모델 목록

keras.applications에는 ResNet, EfficientNet, MobileNet, VGG, DenseNet, Xception을 비롯해 ImageNet으로 사전 학습된 이미지 모델이 37개 이상 들어 있어. 유명세보다 실행할 환경이 서버인지 모바일인지 가장자리 장치인지, 매개변수 비용으로 어느 정도 정확도를 얻을지를 기준으로 골라.

모델매개변수Top-1 정확도알맞은 용도
EfficientNetV26M–119M최대 85.7%정확도와 효율의 균형
ResNet5025M76.0%널리 쓰이고 이해하기 쉬움
MobileNetV32.5M–5.4M75.2%모바일과 가장자리 장치 배포
ConvNeXt28M–350M최대 88.5%현대적인 CNN 구조
VGG16138M71.3%단순한 구조와 교육

핵심 인자 include_top

전이 학습에서는 대개 include_top=False로 불러와. 이 값은 ImageNet 분류기를 모델 위에 포함할지 결정해. False이면 마지막 1000방향 Dense 레이어를 떼고 이미지에서 특징 맵을 만드는 순수 특징 추출기만 남겨. 그 위에 내 클래스 수에 맞는 출력 헤드를 붙이면 돼. 기본값 include_top=True는 ImageNet의 1000개 범주를 그대로 예측할 때 사용해.

include_top=False의 출력은 벡터가 아니라 높이 × 너비 × 채널 모양의 특징 맵이야. 다음 과에서는 백본 뒤에 GlobalAveragePooling2D를 두어 벡터로 압축한 다음 Dense 출력 헤드를 연결해.

Code

분류 출력 헤드 없이 백본 불러오기·python
# Load pretrained model (without classification head)
base_model = keras.applications.EfficientNetV2S(
    weights="imagenet",
    include_top=False,      # Remove classification layers
    input_shape=(224, 224, 3),
)

External links

Exercise

ResNet50을 include_top=False로 불러오고 (224,224,3) 입력의 출력 모양을 확인해. 그 위에 GlobalAveragePooling과 Dense(num_classes)를 추가한 뒤 model.summary()에서 연결과 매개변수 수가 합리적인지 살펴봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.