0Pricing
Learn AI with Python · Aula

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

  1. Conceitos e estratégias de aprendizado por transferência
  2. Usando VGG16 e ResNet50 como modelos-base
  3. Ajuste fino: descongelamento e retreinamento
  4. MobileNet e EfficientNet para implantação na borda
← Voltar para Learn AI with Python