Comparación de inferencia en imágenes con host CPU & dispositivo Coral Acelerador & TFlite
¿Qué sucedería si preparamos un experimento que comparara un modelo con características similares usando CPU de escritorio tradicional y por otro lado, una EDGE TPU?
Al explorar la tabla de "tiempo por inferencia", tengo curiosidad por experimentar con la inferencia de modelos, utilizando una CPU de escritorio y con la misma CPU host delegar la inferencia al dispositivo Coral. Entonces, el desafío inicial aquí es explorar las diferencias entre ambos entornos utilizando el experimento más homogéneo posible.
Ahora comencemos el experimento, decidí explorar la arquitectura del modelo MobileNet v2 y 224 como tamaño de imagen.
Intentaré seguir 2 pasos simples:
Finalmente, debemos comparar los resultados con la tabla inicial propuesta. *señalando que usaremos un host de tipo CPU diferente.
Para la aplicación Edge TPU, utilicé un acelerador Coral y aquí está la solución creada para hacer las inferencias.* en el repositorio de código, agregué un archivo "* .sh" para completar los requisitos iniciales y simplificar la representación del experimento.
Imagenes 224x224 , arquitectura MobileNet v2 con CPU
Imagenes 224x224 , arquitectura MobileNet v2 quantized con Coral Edge TPU accelerator.
Bien!! muy similar a la tabla de rendimiento inicial :). Ahora puedes experimentar a tu gusto, usando la versión provista o variando modelos.
Este es solo un ejemplo simple, pero ... ¿quieres ver más proyectos usando dispositivos Coral? Echa un vistazo a este teachable-sorter
Articulo original (english)
Cada Edge TPU es capaz de ejecutar 4 trillones de operations (tera-operaciones) por segundo (TOPS), utilizando 0.5 watts por cada TOPS (2 TOPS por watt). como se traduce este rendimientopara su aplicación dependerá de una variedad de factores. Cada modelro de red neuronal tiene diferentes requerimientos, y si stá utilizando un dispositivo acelerador USB, el rendimeinto total también variará dependiento el CPU host, la velocidad de USB y otros recursos del sistema. referencia (english)Exploremos ahora una experiencia utilizando el acelerador USB,
tomando contacto con el dispositivo |
Comenzando el experimento
Al explorar la tabla de "tiempo por inferencia", tengo curiosidad por experimentar con la inferencia de modelos, utilizando una CPU de escritorio y con la misma CPU host delegar la inferencia al dispositivo Coral. Entonces, el desafío inicial aquí es explorar las diferencias entre ambos entornos utilizando el experimento más homogéneo posible.La pregunta inicial está relacionada con el método de inferencia
Edge TPU es compatible solo con los modelos TensorFlow Lite. Por lo tanto, generalmente debemos entrenar un modelo TensorFlow, convertirlo a TensorFlow Lite y compilarlo para Edge TPU. referencia (english)Para este experimento, seleccionaré un modelo general y el equivalente quantized ... o sea preparado para Edge TPU y una implementación para Python.
¿Dónde puedo descargar un modelo?
Por supuesto, podemos usar TF Hub y explorar diferentes versiones de modelos, también en la página de Coral es posible ver muchos modelos quantized.Ahora comencemos el experimento, decidí explorar la arquitectura del modelo MobileNet v2 y 224 como tamaño de imagen.
Intentaré seguir 2 pasos simples:
- Crear una implementación para analizar imagenes utilizando CPU de escritorio.
- Crear una implementación para usar el acelerador Edge TPU Coral y analizar imágenes.
Implementación
Para el escenario inicial, creé un script python simple para explorar la inferencia en CPU de escritorio, también como alternativa, propuse una implementación equivalente en Colab. (solución integrada con TensorFlow Hub para obtener el modelo)Para la aplicación Edge TPU, utilicé un acelerador Coral y aquí está la solución creada para hacer las inferencias.* en el repositorio de código, agregué un archivo "* .sh" para completar los requisitos iniciales y simplificar la representación del experimento.
Conclusiones
Finalmente, como mencioné, el rendimiento de la inferencia depende del tipo de CPU, USB y rendimiento del host, pero la ejecución en general con Edge TPU es más de 10 veces más rápida.Imagenes 224x224 , arquitectura MobileNet v2 con CPU
- i7–7500U CPU 2.70GHz × 2
- Linux kernel: 5.3.0–28-generic
- Promedio en inferencias: 50 Milliseconds
Imagenes 224x224 , arquitectura MobileNet v2 quantized con Coral Edge TPU accelerator.
- Promedio en inferencias: 2.6 Milliseconds
Bien!! muy similar a la tabla de rendimiento inicial :). Ahora puedes experimentar a tu gusto, usando la versión provista o variando modelos.
Este es solo un ejemplo simple, pero ... ¿quieres ver más proyectos usando dispositivos Coral? Echa un vistazo a este teachable-sorter
Comentarios
Publicar un comentario