0Pricing
Learn AI with Python · Lección

MobileNet y EfficientNet para despliegue en el edge

Arquitecturas ligeras, conversión a TFLite y compromisos entre tamaño y precisión del modelo.

MobileNet y EfficientNet para despliegue en el edge es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

Por qué los modelos edge son diferentes

En teléfonos y dispositivos integrados se sacrifica algo de precisión a cambio de un tamaño mínimo, baja latencia y bajo consumo energético. MobileNet y EfficientNet están diseñados exactamente para esto y utilizan bloques de construcción eficientes en lugar de convoluciones densas pesadas.

Convoluciones separables en profundidad de MobileNet

MobileNet reemplaza las convoluciones estándar por convoluciones separables en profundidad: un filtro espacial por canal seguido de una combinación puntual 1x1. Esto reduce el cálculo y los parámetros aproximadamente entre 8 y 9 veces, con una pérdida mínima de precisión.

MobileNetV3Small

MobileNetV3Small está optimizado para dispositivos móviles: ocupa aproximadamente 2.5MB en pesos, por lo que resulta ideal cuando el almacenamiento y la RAM son limitados.

from tensorflow.keras.applications import MobileNetV3Small

base = MobileNetV3Small(
    weights="imagenet",
    include_top=False,
    input_shape=(224, 224, 3)
)

EfficientNetB0

EfficientNetB0 utiliza escalado compuesto para equilibrar profundidad, anchura y resolución. Ofrece una precisión alta para su tamaño y constituye un excelente punto medio entre las redes móviles pequeñas y los modelos pesados para servidores.

from tensorflow.keras.applications import EfficientNetB0

base = EfficientNetB0(
    weights="imagenet",
    include_top=False,
    input_shape=(224, 224, 3)
)

Cómo elegir entre ellos

  • MobileNetV3Small (~2.5MB): el más pequeño y rápido, pero con menor precisión. Es la mejor opción para aplicaciones móviles en tiempo real.
  • EfficientNetB0: ofrece un equilibrio entre precisión y tamaño. Es la mejor opción cuando puede dedicar algo más de capacidad de cálculo.

Elija según el presupuesto de latencia de su dispositivo y el objetivo de precisión.

Construcción de la cabeza de transferencia

El patrón de aprendizaje por transferencia es idéntico: congelar la base, aplicar pooling y añadir una cabeza 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)

¿Qué es TFLite?

TensorFlow Lite es un entorno de ejecución para inferencias en el dispositivo. Permite convertir un modelo de Keras entrenado en un flatbuffer compacto .tflite que funciona eficientemente en las CPU, GPU y NPU de dispositivos móviles.

Conversión a TFLite

Utilice TFLiteConverter para convertir el modelo guardado.

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)

La cuantización reduce aún más el tamaño

La cuantización posterior al entrenamiento almacena los pesos como int8 en lugar de float32, reduce el tamaño aproximadamente 4 veces y acelera la inferencia en el hardware móvil, con una pérdida mínima de precisión.

converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant = converter.convert()

Pruebas comparativas de latencia

En hardware móvil habitual, MobileNetV3Small suele ejecutarse en un solo dígito o unas pocas decenas de milisegundos por imagen, lo que permite trabajar cómodamente en tiempo real. EfficientNetB0 es más pesado y lento, pero ofrece mayor precisión.

Mida siempre el rendimiento en el dispositivo de destino real; los tiempos del emulador no son fiables. Utilice TFLite Benchmark Tool o mida el tiempo de invoke() del intérprete.

Ejecución de inferencias con TFLite

Cargue el modelo con Interpreter, establezca el tensor de entrada, invoque el modelo y lea la salida.

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"]))

Comprobación rápida

Compruebe sus conocimientos sobre la implementación en dispositivos edge.

Resumen

Ha comparado MobileNetV3Small (~2.5MB, el más rápido) y EfficientNetB0 (equilibrado) para su uso en dispositivos edge, ha creado cabezas de transferencia para ambos, los ha convertido a TFLite, ha aplicado cuantización int8 y ha medido la latencia en hardware real. Con esto termina el curso de aprendizaje por transferencia. Siguiente curso: análisis de series temporales.

Preguntas frecuentes

¿La lección «MobileNet y EfficientNet para despliegue en el edge» es gratis?

Sí — el texto completo de «MobileNet y EfficientNet para despliegue en el edge» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «MobileNet y EfficientNet para despliegue en el edge»?

Arquitecturas ligeras, conversión a TFLite y compromisos entre tamaño y precisión del modelo. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «MobileNet y EfficientNet para despliegue en el edge»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos y estrategias de aprendizaje por transferencia
  2. Uso de VGG16 y ResNet50 como modelos base
  3. Ajuste fino: descongelación y reentrenamiento
  4. MobileNet y EfficientNet para despliegue en el edge
← Volver a Learn AI with Python