Entradas

TensorFlow Lite con Go API en 7 pasos

Imagen
TensorFlow Lite es un marco de aprendizaje profundo de código abierto para la inferencia en el dispositivo. La API actual es compatible oficialmente con Python, Java y C ++ . La pregunta principal aquí es, ¿qué pasaría si quisiéramos usar Go & TensorFlow Lite? El objetivo de este artículo es brindar la oportunidad de usar Go en el poderoso mundo de la inferencia en el dispositivo y también brindar una experiencia de uso fluida. Hay algunas iniciativas trabajando en eso, pero sin un diseño central claro, un entorno de mantenimiento y dependencias. Para la propuesta inicial, decidí usar la biblioteca TensorFlow Lite C y para el enlace estoy usando cgo (cgo permite la creación de paquetes Go que llaman código C) para implementar la solución. Creé la versión inicial de la biblioteca tflitego . * Siempre damos la bienvenida a los contribuyentes, expertos y expertos en inferencia en el dispositivo, etc. Aquí el diseño de la versión inicial: También creé un proyecto de ejemplos inicial ...

Comparación de inferencia en imágenes con host CPU & dispositivo Coral Acelerador & TFlite

Imagen
¿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? 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 ...

Interesado en formar parte de un TensorFlow SIG?

Imagen
Si estás interesado en contribuir con TensorFlow con un enfoque específico, una interesante opción es crear or formar parte de un SIG. TensorFlow propone la creación de Grupos de interés especial (SIG) para enfocar la colaboración en áreas particulares.  Que es un TensorFlow SIG? Los SIG proponen su trabajo públicamente. El ámbito ideal para un SIG debería alinearse con un dominio bien definido, donde la mayor participación es mediante el enfoque comunitario. Además, debe haber evidencia suficiente de que hay miembros de la comunidad dispuestos a participar y contribuir en caso de que se establezca este grupo de interés. Mas información aquí,  https://www.tensorflow.org/community/sig_playbook Si tienes interes en participar, tienes una propuesta o idea para esta iniciativa, aquí tienes un canal de comunidad abierto para explorar la propuesta.  https://tensorflowexperiences.nicolasbortolotti.com/main/sig Esta obra está bajo una Licencia C...

Cloud Platform & Comunidades, experiencias de verano en Suiza e Italia

Imagen
Semanas atrás con el equipo europeo de comunidades & developers, iniciamos actividades junto  a algunas comunidades especializadas en Aprendizaje Automático y Cloud Platform. Además como parte de esta nueva iniciativa, participamos en algunos Meetups & Actividades. Visitamos 2 comunidades, Zurich y Milano presentando la propuesta de  Cloud Study Jam . Inicialmente compartimos una muy linda experiencia junto a  SOAI chapter in Zurich . Aquí presentamos los fundamentos de  Cloud Study Jam  y agregamos  una sesión práctica sobre CloudML engine. Cloud Study Jam Overview: * el componente central del formato Cloud Study Jam es la utilización de  la plataforma  qwiklabs  que provee el soporte a los tutoriales y laboratorios online. Cloud Study Jam, workshop "Cloud ML Engine: Qwik Start": Además de esta actividad, compartimos otra muy linda experience junto a  Machine Learning Milan . Enfoque similar a la actividad ant...

Pensaste en contribuir con TensorFlow?

Imagen
Si estás familiarizado con el concepto de comunidad de desarrolladores, posiblemente la pregunta te resulte natural. Pensaste en contribuir con TensorFlow? .  Entonces veamos que opciones disponibles hay y dónde se puede encontrar más información al respecto... Aquí podemos ver claramente el mensaje desde la sección comunidad de TensorFlow: https://www.tensorflow.org/community/contribute Luego de describir los valores de la comunidad en el artículo se pueden observar las opciones para contribuir a TensorFlow como, escribir código, mejorar la documentación, responder preguntas en stackoverflow, participar de las discusiones en el foro, contribuir a los ejemplos propuestos en notebooks, investigar bugs en GitHub, etc... Además inmediatamente a esta lista de opciones podrás ver una enumeración de proyectos comunitarios actuales. Múltiples opciones para hacer un mejor ecosistema de desarrolladores... Pensaste en contribuir con TensorFlow? por Nicolas Bortolotti se d...

Encuesta Stackoverflow 2019, algunos de los resultados claves

Imagen
Esta mañana dediqué unos minutos a explorar los principales resultados de la encuesta 2019 en stackoverflow , con unas 90k respuestas, este enfoque siempre entrega indicadores interesantes. El primero de los resultados no sorprende tanto, Python como principal lenguaje de programación de más rápido crecimiento, era una tendencia y aquí una buena confirmación de su buen presente, la última parte del resultado es interesante de evaluar, principalmente la presencia de Rust como el lenguaje más querido. Me gustaría conocer más del porque de esta preferencia por Rust, desde luego que ya tengo algunas ideas, igualmente algo que me gustaría remarcar es el mensaje del uno de los ingenieros Yelp que al utilizar en producción Rust y nos deja un claro mensaje de sus puntos altos...  documentación, herramientas y comunidad. "All the documentation, the tooling, the community is great - you have all the tools to succeed in writing Rust code", – Antonio Verardi, Infrastructure Engi...

Utilizando TensorFlow 2 preview, una simple comparación entre el rendimiento CPU vs GPU

Imagen
Utilizando tf 2 en modo eager , un método mucho más afín a coder/desarrollador, intenté realizar un procedimiento simple para multiplicar matrices y explorar el rendimiento entre la ejecución en CPU y GPU. Utilizando una multiplicación de 2000x2000 e iterando en 100 steps, tenemos estos valores de comparación en segundos. *para la ejecución utilicé una instancia VM provista por Google Cloud, la imagen con soporte GPU, la m21. La rutina es muy simple, puede ver su implementación aquí desde este proyecto GitHub.  device_check.py

La simplicidad de Keras desde TensorFlow

Imagen
Desde su lanzamiento TensorFlow me cautivó por su poder, funcionalidad y enfoque abierto como librería para calculo numérico avanzado y desde luego para representar, diseñar e implementar modelos de aprendizaje automático. Pero desde la incorporación de Keras , la flexibilidad y simplicidad para la representación de modelos de aprendizaje profundo es maravillosa. Desde su definición, Keras es una API de alto nivel para construir y entrenar modelos de aprendizaje profundo. Se utiliza para creación rápida de prototipos, investigación avanzada y por supuesto esto es válido también para producción. Tres ventajas claras nos propone, es fácil de usar, modular, y relativamente fácil de extender . ❗ si buscan un glosario en español una opción que se ve bien es el propuesto por Google en su iniciativa " Glosario sobre aprendizaje automático " Si les interesa analizar un ejemplo que es un tanto académico pero es interesante para afianzar la mecánica de operaciones de un  red ...

TensorFlow Probability ¿Cuál es la probabilidad de que de 6 pacientes seleccionados al azar, 4 se recuperen?

Imagen
La pregunta es muy simple, y el objetivo de este artículo es simplemente introducir la utilización de TensorFlow Probability(TFP) . Solo algunas palabras sobre TFP, es una biblioteca Python propuesta en TensorFlow para facilitar la combinación de modelos probabilísticos y el aprendizaje profundo en hardware moderno (TPU, GPU). Seguramente si pasas mucho tiempo analizando datos, conviviendo con procesos estadísticos, o investigando diseño y modelos de ML será de gran utilidad en tus tareas diarias. Pueden tener más detalles aquí. Para esta experiencia seleccioné un problema teoŕico muy simple, que propone una distribución binomial. Si necesita recordar detalles de la distribución binomial aquí pueden rápidamente ver sus detalles. Los registros hospitalarios muestran que de los pacientes que padecen cierta enfermedad, el 75% muere. ¿Cuál es la probabilidad de que de 6 pacientes seleccionados al azar, 4 se recuperen? Nota: Esto parece preliminarmente una distribución binomial...

¿Cuál es tu color de corbata favorito? Análisis en Tensor Flow

Imagen
Seguramente en reuniones formales, encuentros de etiqueta, e incluso en el mundo de los negocios alguna vez eligieron o criticaron el color de una corbata. Esto también es posible para el mundo de la visión por computador. El desafío de hoy será analizar una imagen, extraer sus objetos, identificar clases las corbatas y luego analizar su color dominante. Es un lindo desafío si pensamos a futuro combinar de una manera apropiada nuestra vestimenta. Vamos a utilizar Tensor Flow y el modelo de Object Detection. Seguiremos este esquema arquitectónico: Vamos a seleccionar algunas imágenes y aplicar nuestra propuesta. Imágenes seleccionadas El objetivo fue seleccionar diferentes escenarios con diferentes colores para nuestro conjunto de prueba. Soluciones Soluciones en RGBs: [171,14,12] [249,55,53] [ 33,144,216] [48,88,76] Procedimiento utilizado Procesaremos las imágenes con el modelo de detección de objetos de Tensor Flow, luego, utilizando las cajas de det...

TensorFlow Object Detection en 5 clicks desde Colaboratory

Imagen
Si uno de tus objetivos es realizar algunas pruebas de investigación sobre ciencia de datos, aprendizaje automático o un escenario similar, pero a la vez la idea que tienes es utilizar el menor tiempo posible para configurar el entorno, una muy buena propuesta desde el equipo de Google Research es Colaboratory . Para esta oportunidad les preparé la utilización de la API de TensorFlow Object Detection en solo 5 clicks. Qué opinan si  analizamos los objetos de una imagen con el objetivo de usar  una implementación de menos de 60 segundos? ejecución del ejemplo en colaboratory Seguramente se preguntan, cómo pueden usar esta implementación? La respuesta es muy simple,   accediendo  aquí  y utilizando la secuencia de pasos propuestos. Pueden ver los detalles de cada paso a continuación. Paso 1 Para este paso incluí la descarga del modelo al entorno virtual que propone Colaboratory . El resto de librerías como la de TensorFlow ya está disponibles...

Una opción de servicio para interactuar con cámaras Arlo

Imagen
Interactuar con el sistema Arlo es muy atractivo para quienes adquirieron el hardware y disfrutan de todas las bondades de estos equipos. Que por cierto son muy buenos, flexibles y llenos de buenas propiedades. Para interactuar con este sistema con una perspectiva de desarrollador, encontré dos proyectos interesantes con base python. Python-arlo:  https://github.com/tchellomello/python-arlo Arlo:  https://github.com/jeffreydwalter/arlo Ambos proponen diferentes características pero python-arlo tiene una buena documentación y estructura de su API. El objetivo para esta integración es dar soporte a solicitudes desde Google Assistant , por este motivo lo integre a un proyecto App Engine flex env . Incluí flask como framework de interacción y con esto tener la opción de utilizar una interfaz de servicios. Este sería nuestro mapa arquitectónico ideal:  Buscamos continuar con la solicitud iniciada por: Hey Google …. dónde está mi perro?  *Por s...

Google Assistant, simpleza de interacción para llamar a un webhook

Imagen
La creación de una aplicación utilizando Google Assistant es muy simple y de gran impacto para interactuar con usuarios en diversos entornos y particularmente en hogareños. Hey Google ...dónde está mi mascota? Si planeamos conectar un sistema de cámaras de seguridad, el desafío de encontrar de forma automatizada mi mascota es más factible, luego les voy a dar más detalles de cómo pienso realizarlo. Por ahora nos vamos a preocupar en trabajar en sobre las solicitudes del asistente. Para crear un agente e interactuar con Google Assistant vamos a utilizar DialogFlow . Veamos los principales elementos a tener en cuenta para crear un agente, y desde este agente llamar a un webhook con alguna funcionalidad. *Parte del objetivo será dejar preparada la lógica de interacción con un sistema de seguridad hogareño * Arlo System Desde la consola de DialogFlow , crearemos un nuevo agente: Podemos personalizar los diferentes idiomas de soporte, para este caso voy a utilizar ...

Siguiendo a Messi utilizando TensorFlow y Object Detection

Imagen
En publicaciones anteriores estuvimos utilizando TensorFlow en combinación con el modelo de Object Detection , pero siempre haciendo uso de los tradicionales conjuntos de datos preestablecidos [ejemplo COCO database ]. En esta oportunidad, nuestro desafío debería llevarnos a otro nivel. Les propongo analizar un segmento de un partido de fútbol e identificar sus jugadores. Al hablar de fútbol, lo primero que me vino a la mente es buscar el talento del astro argentino Lionel Messi. Empecemos nuestro análisis: Entrenemos un modelo personalizado que nos permita ubicar a astro argentino. Analicemos una transmisión real [en este caso seleccioné Uruguay-Argentina por eliminatorias 31 de agosto 2017] para ver qué resultados podemos obtener. Pensemos si es posible mejorar o aportar algo a la táctica de este pasional deporte, utilizando esta tecnología. *Vamos a utilizar TensorFlow y el modelo propuesto para Object Detection , todo bajo licencia Apache License 2.0. En esta oportunidad...

Tensor Flow Object Detection sobre Telegram Bot, mi desayuno, frutas y una conversación interactiva

Imagen
En este artículo vamos a explorar un caso, donde combinemos la detección de objetos en imágenes utilizando Tensor Flow (Object Detection API), y la interacción mediante una arquitectura de bots (Telegram platform). El desafío es crear un bot que pueda interactuar con imágenes en una conversación, para informar al usuario las frutas que contiene su desayuno. Utilizando esta información se pueden entregar muchas variaciones de análisis en el futuro, por el momento solo una prueba de concepto.   Vamos a proponer una integración de TensorPhotoXRay (nuestra solución para detección de etiquetas en imágenes, artículo previo ) para detectar frutas en las imágenes y vamos a crear una integración con un Telegram Bot (proyecto appengine-telegram-bot ). Esta es la solución terminada y funcionando: Vamos a describir los elementos básicos para utilizar esta arquitectura. Creación del bot en telegram: Usted puede conocer más sobre esta opción en este link oficial . *Element...

TensorFlow radiografía de imágenes utilizando Object Detection con App Engine

Imagen
En artículos anteriores analizamos objetos en imágenes utilizando Tensor Flow Object Detection API  aplicando diferentes tipos de modelos ( TensorFlow Object Detection en videos, basta de pizza, donuts y cakes... , TensorFlow Object Detection API, cena con amigos ). En estos ejemplos, la solución siempre estuvo diseñada para una aplicación de consola (es decir un Python script ejecutado localmente). Ahora nuestro desafío es llevarlo a un entorno web, detectar objetos dentro de la foto (como una radiografía) y finalmente deberíamos proponer una arquitectura simple de implementación. Vista General Podríamos pensar varias opciones de arquitectura en donde se utilice un esquema servidor (ejemplo desde la documentación oficial TensorFlow Serving ). Incluso podríamos pensar en alternativas tradicionales( Apache , Nginx , etc) pero debemos pensar en montar el servidor Web y ajustar todos los elementos para realizar el análisis utilizando TensorFlow . Me gustó mucho la idea de utili...