MobileNet e EfficientNet para implantação na borda
Arquiteturas leves, conversão para TFLite e compromissos entre tamanho do modelo e precisão.
MobileNet e EfficientNet para implantação na borda é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Por que os modelos de borda são diferentes
Em telefones e dispositivos incorporados, você troca um pouco de acurácia por tamanho reduzido, baixa latência e baixo consumo de energia. MobileNet e EfficientNet foram projetados exatamente para isso, usando blocos construtivos eficientes em vez de convoluções densas pesadas.
Convoluções separáveis em profundidade do MobileNet
O MobileNet substitui as convoluções padrão por convoluções separáveis em profundidade: um filtro espacial aplicado a cada canal, seguido por uma combinação pontual 1x1. Isso reduz o processamento e a quantidade de parâmetros em aproximadamente 8 a 9 vezes, com pouca perda de acurácia.
MobileNetV3Small
MobileNetV3Small é otimizado para dispositivos móveis: possui cerca de 2,5 MB de pesos, sendo ideal quando o armazenamento e a RAM são limitados.
from tensorflow.keras.applications import MobileNetV3Small
base = MobileNetV3Small(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)EfficientNetB0
EfficientNetB0 usa escalonamento composto para equilibrar profundidade, largura e resolução. Alcança uma acurácia elevada para seu tamanho e é uma ótima opção intermediária entre redes móveis compactas e modelos de servidor pesados.
from tensorflow.keras.applications import EfficientNetB0
base = EfficientNetB0(
weights="imagenet",
include_top=False,
input_shape=(224, 224, 3)
)Escolhendo entre eles
- MobileNetV3Small (~2,5 MB): menor, mais rápido e com a menor acurácia. Melhor para uso móvel em tempo real.
- EfficientNetB0: equilíbrio entre acurácia e tamanho. Melhor quando você pode investir em um pouco mais de processamento.
Faça sua escolha com base no orçamento de latência do dispositivo e na acurácia desejada.
Construindo o head de transferência
O padrão de aprendizado por transferência é idêntico: congele a base, faça o agrupamento e adicione um head Dense.
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)O que é o TFLite?
TensorFlow Lite é um ambiente de execução para inferência no dispositivo. Você converte um modelo Keras treinado em um buffer plano compacto .tflite que é executado com eficiência em CPUs, GPUs e unidades de processamento neural de dispositivos móveis.
Conversão para TFLite
Use TFLiteConverter para converter o modelo salvo.
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)A quantização reduz ainda mais o tamanho
A quantização após o treinamento armazena os pesos em int8 em vez de float32, reduzindo o tamanho em aproximadamente 4 vezes e acelerando a inferência no hardware móvel, com perda mínima de acurácia.
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant = converter.convert()Referências de latência
Em um hardware móvel típico, o MobileNetV3Small costuma processar cada imagem em um dígito até pouco mais de dez milissegundos, com conforto para uso em tempo real. O EfficientNetB0 é mais pesado e lento, mas oferece maior acurácia.
Faça sempre a medição no dispositivo de destino real; os tempos do emulador não são confiáveis. Use a ferramenta TFLite Benchmark Tool ou meça o tempo de invoke() do Interpreter.
Executando inferência com TFLite
Carregue o modelo com o Interpreter, defina o tensor de entrada, use invoke e leia a saída.
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"]))Verificação rápida
Teste seus conhecimentos sobre implantação em dispositivos de borda.
Recapitulação
Você comparou MobileNetV3Small (~2,5 MB, o mais rápido) e EfficientNetB0 (equilibrado) para uso em dispositivos de borda, construiu heads de transferência com eles, converteu-os para TFLite, aplicou quantização int8 e mediu a latência em hardware real. Isso conclui o curso de Aprendizado por Transferência. Próximo curso: Análise de Séries Temporais.
Perguntas Frequentes
A aula “MobileNet e EfficientNet para implantação na borda” é grátis?
Sim — o texto completo de “MobileNet e EfficientNet para implantação na borda” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “MobileNet e EfficientNet para implantação na borda”?
Arquiteturas leves, conversão para TFLite e compromissos entre tamanho do modelo e precisão. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “MobileNet e EfficientNet para implantação na borda”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Conceitos e estratégias de aprendizado por transferência
- Usando VGG16 e ResNet50 como modelos-base
- Ajuste fino: descongelamento e retreinamento
- MobileNet e EfficientNet para implantação na borda