엣지 배포를 위한 MobileNet과 EfficientNet
경량 아키텍처, TFLite 변환, 모델 크기와 정확도 사이의 절충을 알아봅니다.
엣지 배포를 위한 MobileNet과 EfficientNet은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
엣지 모델이 다른 이유
휴대전화와 임베디드 장치에서는 약간의 정확도를 포기하고 작은 크기, 짧은 지연 시간, 낮은 전력 소모를 얻습니다. MobileNet과 EfficientNet은 무거운 밀집 합성곱 대신 효율적인 구성 요소를 사용하여 바로 이러한 용도에 맞게 설계되었습니다.
MobileNet 깊이별 합성곱
MobileNet은 표준 합성곱을 깊이별 분리 합성곱으로 대체합니다. 이 방식은 채널별 공간 필터를 적용한 다음 1x1 점별 혼합을 수행합니다. 이를 통해 정확도 손실은 거의 없이 연산량과 매개변수 수를 약 8~9배 줄일 수 있습니다.
MobileNetV3Small
MobileNetV3Small은 모바일 환경에 맞게 조정된 모델로, 가중치가 약 2.5MB에 불과하여 저장 공간과 RAM이 부족할 때 적합합니다.
from tensorflow.keras.applications import MobileNetV3Small
base = MobileNetV3Small(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)EfficientNetB0
EfficientNetB0은 깊이, 너비, 해상도의 균형을 맞추기 위해 복합 스케일링을 사용합니다. 모델 크기에 비해 높은 정확도를 달성하므로, 초소형 모바일 네트워크와 무거운 서버 모델 사이의 훌륭한 중간 선택지입니다.
from tensorflow.keras.applications import EfficientNetB0
base = EfficientNetB0(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)두 모델 중 선택하기
- MobileNetV3Small(~2.5MB): 가장 작고 빠르지만 정확도는 가장 낮습니다. 모바일에서 실시간으로 사용하기에 적합합니다.
- EfficientNetB0: 정확도와 크기의 균형이 좋습니다. 연산량을 조금 더 사용할 수 있을 때 적합합니다.
장치의 지연 시간 예산과 목표 정확도를 기준으로 선택하십시오.
전이 head 만들기
전이 학습 패턴은 동일합니다. 기반 모델을 고정하고, 풀링한 다음, Dense head를 추가합니다.
from tensorflow.keras import layers, Model
base.trainable = False
x = layers.GlobalAveragePooling2D()(base.output)
x = layers.Dropout(0.2)(x)
out = layers.Dense(num_classes, activation="softmax")(x)
model = Model(base.input, out)TensorFlow 라이트란 무엇인가
TensorFlow 라이트는 기기 내 추론을 위한 실행 환경입니다. 학습된 케라스 모델을 모바일 CPU, GPU, NPU에서 효율적으로 실행되는 작은 .tflite 플랫버퍼로 변환합니다.
TensorFlow 라이트 변환
TFLiteConverter를 사용하여 저장된 모델을 변환하십시오.
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open("model.tflite", "wb") as f:
f.write(tflite_model)양자화로 더 작게 만들기
학습 후 양자화는 가중치를 float32 대신 int8로 저장하여 크기를 약 4배 줄이고 모바일 하드웨어에서 추론을 빠르게 합니다. 정확도 손실은 거의 없습니다.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant = converter.convert()지연 시간 성능 측정
일반적인 모바일 하드웨어에서 MobileNetV3Small은 이미지 하나를 처리하는 데 한 자릿수에서 낮은 두 자릿수의 밀리초가 걸리는 경우가 많아 충분히 실시간으로 실행됩니다. EfficientNetB0은 더 무겁고 느리지만 정확도가 더 높습니다.
항상 실제 대상 장치에서 성능을 측정하십시오. 에뮬레이터의 측정 시간은 신뢰하기 어렵습니다. TensorFlow 라이트 벤치마크 도구를 사용하거나 Interpreter의 invoke() 실행 시간을 측정하십시오.
TensorFlow 라이트 추론 실행하기
Interpreter로 모델을 불러오고, 입력 텐서를 설정하고, invoke한 다음 출력을 읽습니다.
interpreter = tf.lite.Interpreter(model_path="model.tflite")
interpreter.allocate_tensors()
inp = interpreter.get_input_details()[0]
out = interpreter.get_output_details()[0]
interpreter.set_tensor(inp["index"], image)
interpreter.invoke()
print(interpreter.get_tensor(out["index"]))빠른 확인
엣지 배포 지식을 확인해 보십시오.
복습
엣지 환경에서 사용하기 위해 MobileNetV3Small(약 2.5MB, 가장 빠름)과 EfficientNetB0(균형 잡힌 성능)을 비교하고, 두 모델에 전이 head를 구성하고, TensorFlow 라이트로 변환하고, int8 양자화를 적용하고, 실제 하드웨어에서 지연 시간을 측정했습니다. 이것으로 전이 학습 과정을 마칩니다. 다음 과정은 시계열 분석입니다.
자주 묻는 질문
“엣지 배포를 위한 MobileNet과 EfficientNet” 강의는 무료인가요?
네 — “엣지 배포를 위한 MobileNet과 EfficientNet” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
“엣지 배포를 위한 MobileNet과 EfficientNet”에서 뭘 배우나요?
경량 아키텍처, TFLite 변환, 모델 크기와 정확도 사이의 절충을 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“엣지 배포를 위한 MobileNet과 EfficientNet” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 전이 학습의 개념과 전략
- VGG16과 ResNet50을 기본 모델로 사용하기
- 미세 조정: 동결 해제와 재학습
- 엣지 배포를 위한 MobileNet과 EfficientNet