Aumenta la productividad con el ecosistema de Keras

Rate this content
Bookmark

TensorFlow ha construido una sólida base para diversas aplicaciones de aprendizaje automático, sobre la cual el ecosistema de Keras puede realmente aumentar la productividad de los desarrolladores en la construcción de soluciones de aprendizaje automático. Keras tiene una API simple y arbitrariamente flexible para construir y entrenar modelos. Sin embargo, todavía necesitamos mucho trabajo manual para ajustar los hiperparámetros. Afortunadamente, con Keras Tuner, podemos automatizar el proceso de ajuste de hiperparámetros con modificaciones menores en el código para construir y entrenar los modelos. Para aumentar aún más la productividad, presentamos AutoKeras, que automatiza completamente el proceso de construcción de modelos, entrenamiento y ajuste de hiperparámetros. Reduce drásticamente la cantidad de conocimientos previos necesarios para utilizar el aprendizaje automático en algunas tareas comunes. Todo lo que necesitas es definir la tarea y proporcionar los datos de entrenamiento.

30 min
02 Jul, 2021

Video Summary and Transcription

Esta charla presenta el ecosistema de TensorFlow en Keras y destaca sus características, incluyendo manipulaciones de tensores, diferenciación automática e implementación. También se discute el flujo de trabajo y la automatización de la sintonización de hiperparámetros con Keras Tuner y AutoKeras. La charla enfatiza la simplicidad y productividad de usar AutoKeras, que admite diversas tareas y escenarios avanzados. También menciona los desafíos que enfrentan los principiantes y proporciona recursos para el aprendizaje. Por último, se menciona el uso de TensorFlow y Keras en el ámbito de la investigación y las opciones de personalización en AutoKeras, incluyendo la predicción de series temporales.

Available in English

1. Introduction to TensorFlow in Keras Ecosystem

Short description:

Hola a todos. Estoy muy feliz de estar aquí en MLConf EU con ustedes y agradezco mucho la invitación. Mi presentación trata sobre aumentar la productividad con el ecosistema de Keras. Vamos a destacar cuatro características de TensorFlow. La primera es para manipulaciones de tensores. La segunda característica es sobre diferenciación automática. Otra característica importante de TensorFlow es sobre implementación. Se puede implementar en cualquier lugar para un modelo implementado con TensorFlow. TensorFlow realmente se trata de rendimiento y escalabilidad. Pero ¿cómo aprovechamos realmente el poder de TensorFlow?

Estoy muy feliz de estar aquí en MLConf EU con ustedes y agradezco mucho la invitación. Y mi presentación trata sobre aumentar la productividad con el ecosistema de Keras.

Entonces hay muchos miembros del ecosistema de Keras y el primero que vamos a presentar es TensorFlow. Creo que muchos de ustedes han oído hablar de él. Es una base muy poderosa para todas las soluciones de aprendizaje profundo construidas sobre ella. Pero hoy, vamos a destacar cuatro características para que vean cómo otros miembros del ecosistema de Keras dependen de estas características para construir algo más.

La primera, todos sabemos que es para manipulaciones de tensores. Como pueden ver, tenemos A y B como matrices de dos por dos aquí, y pueden hacer A más B o C o exponencial de D con ellas. Esto es compatible con TensorFlow, o una fuente de operaciones matemáticas en todos esos tensores. Y la segunda característica que queremos destacar es sobre diferenciación automática. Significa que pueden calcular los gradientes automáticamente sin calcular manualmente ninguna de las derivadas por su cuenta. Nuevamente, tenemos A y B como matrices, dos por dos. Y C está aquí, calculado en realidad a partir de A y B. Obtenemos C. Y ahora queremos calcular el gradiente de C con respecto a A. Y no tienen que hacer ninguna derivada por su cuenta, sino insertando estas líneas. Con gradient tape, watch A, pueden calcular automáticamente C, D, A, solo llamando a tape.gradientCA.

Otra característica importante de TensorFlow que es realmente utilizada por cualquier otra biblioteca en el ecosistema de Keras es sobre implementación. Se puede implementar en cualquier lugar para un modelo implementado con TensorFlow. Por ejemplo, se puede implementar en servidores con TensorFlow Extended. Y se puede implementar en dispositivos de un solo chip como dispositivos Edge con TensorFlow Lite, y también implementar en cualquier página web con tf.js. Y además, TensorFlow realmente se trata de rendimiento y escalabilidad. Se ejecuta en GPUs y TPUs para acelerar todas esas operaciones matemáticas en tensores. También se escala a múltiples servidores con múltiples GPUs y TPUs para hacer que el entrenamiento del modelo sea realmente rápido, y hacer que la predicción del modelo sea realmente rápida, y la implementación del modelo sea realmente rápida. Y eso es sobre TensorFlow. Es una misión muy poderosa para el ecosistema de Keras.

Pero ¿cómo aprovechamos realmente el poder de TensorFlow? Como vimos, la API de TensorFlow es muy de bajo nivel, consiste en muchas operaciones matemáticas. Realmente no quieres implementar muchas soluciones de aprendizaje profundo con todas esas operaciones matemáticas, porque cada solución de aprendizaje profundo puede involucrar cientos de esas operaciones matemáticas. No quieres escribir cada una de ellas en tu código por tu cuenta.

2. Keras: API de alto nivel para TensorFlow

Short description:

Keras se construye sobre TensorFlow y proporciona API de alto nivel que simplifican el aprendizaje profundo. Puedes agregar fácilmente capas a un modelo secuencial y especificar el número de neuronas y funciones de activación. Los cálculos de pérdida y los bucles de entrenamiento se manejan automáticamente. Keras admite una amplia gama de tareas, desde el uso estándar hasta técnicas avanzadas como GANs y capas personalizadas. Para escenarios más complejos, puedes escribir métricas y pérdidas personalizadas, o incluso implementar tus propios algoritmos de optimización utilizando la API de bajo nivel de TensorFlow.

Entonces, por eso vamos a pasar al segundo miembro del ecosistema de Keras, un aprendizaje profundo radicalmente productivo. Para este, en realidad se ha construido sobre TensorFlow y envuelve las API de bajo nivel de TensorFlow en las API de alto nivel, que son realmente simples de usar.

Aquí podemos ver un ejemplo muy simple de código. Simplemente inicializamos un modelo secuencial, que es un tipo de modelo que vamos a implementar en Keras. Y simplemente puedes seguir agregando esas capas al modelo secuencial. Aquí, agregamos una capa densa con 32 neuronas, o unidades, y una función de activación igual a Relu, y otra capa densa a eso. Entonces tenemos un modelo con dos capas densas.

Es muy simple de implementar y realmente no te importa qué operaciones matemáticas están detrás de esas capas densas, aunque en realidad son multiplicaciones de matrices y sumas, pero realmente no necesitas escribirlas tú mismo. Simplemente usas la capa densa y especificas el número de unidades. Y además, no necesitas calcular la pérdida por tu cuenta. Simplemente la pasas como una cadena, entropía cruzada categórica. No haces ningún cálculo, solo una cadena.

Esta pérdida es en realidad para la tarea de clasificación. Y el modelo compensa, simplemente pasas los datos de entrenamiento. No necesitas escribir ningún bucle por tu cuenta, como iterar 20 épocas. Solo pasas los datos y especificas la época como 20. Y luego comienzas a hacer las predicciones con los datos de prueba. Es realmente simple de aprender.

Pero a pesar de la simplicidad, es capaz de muchas cosas. Es capaz de todo lo que admite la API de bajo nivel de TensorFlow. Y solo necesitas aprender lo que necesitas. No queremos que el usuario aprenda todo de antemano, eso es una curva de aprendizaje bastante grande. Comienzan con un ejemplo simple como el que acabamos de mostrar como uso estándar. Puedes usar la API secuencial, API de función y construir y capas.

Pero si apuntas a algo más, por ejemplo, quieres usar TensorBoard y detención temprana o guardar el modelo en el disco con puntos de control mientras los entrenas, simplemente puedes pasar un montón de funciones de devolución de llamada al modelo. Es realmente simple de hacer. Pero si quieres algo aún más, como el modelo GAN o el aprendizaje del currículo, y luego necesitas escribir algunas capas personalizadas o métricas y pérdidas personalizadas, también es muy fácil de implementar simplemente extendiendo las clases base en Keras.

Pero hay casos de uso aún más difíciles, como aprender a aprender o si quieres implementar un nuevo tipo de algoritmo de optimización, en ese caso, tendrás que escribir tu propio bucle de entrenamiento con las operaciones de cinta de gradiente. Y con eso, obtienes total libertad para usar cualquier cosa admitida por TensorFlow en Keras. Así es la lógica del diseño de la API de Keras.

3. Workflow and Keras Tuner

Short description:

Solo aprendes lo que necesitas. El flujo de trabajo consta de tres pasos y un bucle: entrenar el modelo, evaluar el modelo y realizar cambios en el modelo basados en los resultados de la evaluación. El tedioso trabajo manual de ajuste de hiperparámetros debe automatizarse. Presentamos Keras Tuner, una herramienta automatizada de ajuste de hiperparámetros construida sobre Keras. Es fácil de usar y solo requiere modificaciones menores en el código.

Solo aprendes lo que necesitas. Y después de aprender cómo usar Keras para construir modelos de aprendizaje profundo, veamos un flujo de trabajo típico de un ingeniero de aprendizaje automático. El flujo de trabajo consta de tres pasos y un bucle. El primer paso es entrenar un modelo con model.fit utilizando los datos de entrenamiento. El segundo paso es evaluar el modelo. Simplemente lo evaluamos con datos de validación, como la precisión que puede obtener en nuestras pruebas de clasificación. Luego veremos si la precisión es buena o no.

Si no es buena, probablemente quieras cambiar algo en el modelo. Esos se llaman hiperparámetros. El hiperparámetro puede ser el número de capas o el número de unidades en la capa avanzada o la tasa de aprendizaje. Después de hacer cambios, necesitas construir un modelo nuevamente y entrenarlo nuevamente con los datos de entrenamiento, que se encuentran en el primer paso. Luego pasamos al segundo paso para observar el rendimiento. Así que pasamos por este bucle una y otra vez hasta que alcancemos un nivel de precisión satisfactorio. Por ejemplo, si supera el 90%, consideramos que es lo suficientemente bueno para implementarlo y detenemos el bucle y desplegamos el modelo.

Pero en nuestra opinión, el tedioso trabajo manual debe automatizarse. Todos somos desarrolladores y desarrollamos soluciones para automatizar todo lo que podemos para ahorrar tiempo. Por eso desarrollamos Keras Tuner, el tercer miembro del ecosistema de Keras. Es una herramienta automatizada de ajuste de hiperparámetros. Es muy fácil de usar. Está construida sobre Keras y solo requiere modificaciones menores en el código. Nuevamente, este es el ejemplo de código que mostramos anteriormente de cómo usamos Keras. Tenemos un modelo secuencial al que agregamos capas, como la capa densa aquí con 32 unidades y 10 unidades. Pero ahora probablemente no consideramos que 32 sea un número muy bueno para el número de unidades en la capa densa. Queremos encontrar automáticamente cuál es el mejor valor para el número de unidades en esta capa densa. Así que solo necesitamos cambiar esta línea por algo que se vea así. Simplemente tenemos una instancia de hiperparámetro HP. Pasamos el nombre del hiperparámetro, un valor medio, un valor máximo y la granularidad del hiperparámetro. Es muy intuitivo y muy fácil de modificar el código existente de Keras. Y luego comienzas la búsqueda inicializando un sintonizador.

4. Automatizando el Bucle con AutoKeras

Short description:

Aquí utilizamos la búsqueda aleatoria, que es un algoritmo de búsqueda muy simple, por supuesto. Pero tenemos algo mejor en Keras Tuner, como la optimización bayesiana o hyperband. También puedes usarlos. Así que ahora el bucle está automatizado. Queremos que tengan directamente la solución y ejecuten directamente los modelos. Pero cómo usar el aprendizaje automático hoy en día es muy diferente. Realmente queremos reducir la curva de aprendizaje del uso del aprendizaje automático. Por eso vamos al cuarto miembro de la familia, que se llama AutoKeras, una biblioteca de AutoML para el aprendizaje profundo, para reducir la curva de aprendizaje de la adopción real del aprendizaje automático en aplicaciones del mundo real. Veamos un caso de uso muy simple, tan simple como tres líneas de código, para construir una solución de aprendizaje automático. Y no requiere ningún conocimiento previo de aprendizaje automático, en realidad, en este caso de uso.

Aquí utilizamos la búsqueda aleatoria, que es un algoritmo de búsqueda muy simple, por supuesto. Pero tenemos algo mejor en Keras Tuner, como la optimización bayesiana o hyperband. También puedes usarlos.

Luego comienzas la búsqueda pasando el conjunto de entrenamiento x train y y train como los datos de entrenamiento y especificando las épocas y los datos de validación. Es muy simple usar la función fit del modelo en la biblioteca Keras. Así que ahora el bucle está automatizado. No tienes que pasar manualmente por este bucle una y otra vez. Y lo que estamos pensando ahora es si podemos llevar esto más lejos para automatizar aún más este proceso. Así que no queremos que el usuario ni siquiera sea consciente de la existencia de este bucle. Queremos que tengan directamente la solución y ejecuten directamente los modelos.

Entonces, una vez Andrew Ng dijo que la IA es la nueva electricidad, todos creemos eso. Pero ahora cómo estamos usando la IA es muy diferente de cómo estamos usando la electricidad. Por ejemplo, cómo estamos usando la electricidad hoy en día es como cuando la batería de tu teléfono está descargada, simplemente la conectas a la pared. Creo que todos pueden hacer esto. Todos saben cómo hacer esto. Pero cómo usar el aprendizaje automático hoy en día es muy diferente. Si quieres construir una solución de aprendizaje automático, tienes que leer muchos libros de texto y seguir algunos tutoriales en línea o incluso tomar algunos cursos en línea para entender el algoritmo detrás de esas soluciones de aprendizaje automático. Y al entender esos algoritmos, puedes comenzar a saber qué modelo es el mejor para tu aplicación. Y luego puedes comenzar a usar esas bibliotecas para implementar tu solución de aprendizaje automático. Es realmente difícil de usar. Así que realmente queremos reducir la curva de aprendizaje del uso del aprendizaje automático.

Y sí, por eso vamos al cuarto miembro de la familia, que se llama AutoKeras, una biblioteca de AutoML para el aprendizaje profundo, para reducir la curva de aprendizaje de la adopción real del aprendizaje automático en aplicaciones del mundo real. Veamos un caso de uso muy simple, tan simple como tres líneas de código, para construir una solución de aprendizaje automático. Y no requiere ningún conocimiento previo de aprendizaje automático, en realidad, en este caso de uso. Como puedes ver, importamos AutoKeras como AK. Y inicializamos el clasificador de imágenes, solo para tareas de clasificación de imágenes. Y luego puedes llamar a la función fit pasando x e y. Y no se especifican otros argumentos aquí. Simplemente ingresas los datos de entrenamiento. Y luego puedes comenzar la predicción pasando los datos de prueba.

5. Funciones y Despliegue de AutoKeras

Short description:

AutoKeras admite todos los argumentos de Keras, incluyendo funciones de callback, tensor board y checkpointing. Puedes especificar el número de épocas o dejar que AutoKeras lo ajuste automáticamente. Los modelos se pueden exportar como modelos de Keras y desplegar en cualquier lugar compatible con TensorFlow.

Es bastante simple de usar. Y también tiene algunas características interesantes. La primera es que admite todos los argumentos de Keras aquí en el clasificador de imágenes. Por ejemplo, puedes limitar el tamaño del modelo que estás intentando obtener para poder desplegarlo en un dispositivo periférico con espacio de memoria limitado. Y para las funciones fit y predict, en realidad admitimos todos los argumentos de Keras. Esto significa que puedes pasar funciones de callback a la función fit. Y puedes usar tensor board y checkpointing, detención temprana, todo lo relacionado con las funciones de callback con Auto Keras. También puedes especificar el número de épocas aquí. Pero aquí, no lo especificamos en el ejemplo. Esto significa que también puedes optar por no especificarlo si no sabes cuántas iteraciones debes realizar en el bucle de entrenamiento. Y lo ajustaremos automáticamente por ti. Esto significa que realmente se requiere un mínimo conocimiento para usar esta biblioteca. Además, tenemos una característica interesante de exportar el modelo. Aquí llamas a automodel.exportmodel, y obtienes un modelo de Keras. Y ese modelo de Keras se puede guardar en el disco para uso y despliegue futuro. Y recuerda, todo está construido sobre TensorFlow, por lo que estos modelos se pueden desplegar en cualquier lugar que sea compatible con TensorFlow.

6. AutoKeras: Tareas y Uso Avanzado

Short description:

AutoKeras admite varias tareas, incluyendo clasificación de imágenes, regresión y más. También maneja escenarios complejos como datos de múltiples modelos y aprendizaje de múltiples tareas. Por ejemplo, puede predecir el precio y la ocupación de una casa utilizando tanto imágenes como datos estructurales. AutoKeras proporciona una interfaz simple, AutoModel, para especificar las entradas y salidas. Los usuarios avanzados pueden especificar el espacio de búsqueda para la arquitectura del modelo utilizando la API funcional de Keras. Pueden conectar diferentes bloques, como ResNet y ExceptionNet, y especificar los métodos de fusión y clasificación. AutoKeras admite diferentes versiones de ResNet y proporciona varios otros argumentos para personalización.

No solo admitimos clasificaciones de imágenes. En realidad, admitimos seis tareas en total, clasificación de imágenes, regresión de imágenes y lo mismo para tareas de datos y estructura en clasificación y regresión. Y pronto vendrán más tareas como detección de objetos, segmentación de imágenes y pronóstico de series temporales. Así que puedes esperar eso.

Además de esos casos de uso simples, casos de uso típicos, en realidad admitimos casos de uso más complicados como datos de múltiples modelos y múltiples tareas. Esto es más cercano a los escenarios de casos de uso del mundo real. Por ejemplo, los datos de imagen pueden ser una imagen de una casa y los datos de estructura pueden ser los atributos, algunos atributos de esa casa. Por ejemplo, el área total de la casa y los planos de planta de la casa. ¿Cuántos pisos tiene? Y la longitud o latitud de la casa donde se encuentra. Al ingresar esta información en el modelo, queremos hacer una regresión, como predecir el precio de la casa, y queremos hacer una clasificación de cuántas personas deberían vivir en la casa. Y este escenario es compatible con AutoKeras de esta manera. Nuevamente, es muy simple. En lugar de usar clasificación de imágenes, estamos usando otra interfaz llamada AutoModel y puedes pasar las entradas y salidas a ella. Las entradas son como se muestra en la figura en la diapositiva anterior. Es como una entrada de imagen, una entrada de datos de estructura, una salida es solo una cabeza de regresión y una cabeza de clasificación, muy simple, son intuitivas de usar. También llamas a la función fit, pero aquí son datos de múltiples modelos, por lo que estamos pasando una lista de X, las imágenes y los datos de estructura. Y para la multitarea, estamos pasando los objetivos de regresión y los objetivos de clasificación aquí. Y eso es para el modelo y la multitarea.

Y para los usuarios avanzados, es posible que ya sepan qué tipo de modelo es el mejor para su solución, pero no conocen todos los detalles de cada hiperparámetro, por lo que desean especificar aproximadamente el espacio de búsqueda, como el modelo debería ser así, pero sin muchos detalles. Por ejemplo, los datos de imagen deberían usar ResNet y ExceptionNet juntos y fusionar la salida. Y para los datos de estructura, queremos usar Perceptrón de múltiples capas y fusionarlos todos juntos y hacer la regresión y clasificación. Entonces deberían hacer algo como esto. Es exactamente lo mismo que la API funcional de Keras. Puedes consultar los tutoriales de la API funcional de Keras y aprenderlo. Pero la idea es simplemente conectar estos bloques. Bloque ResNet, bloque ExceptionNet y bloque de fusión, y cómo clasificar y cómo conectarlos juntos con este código. Es importante destacar que estamos pasando un argumento aquí, que es versión igual a v2. Eso significa que solo buscaremos el ResNet v2 aquí en este bloque. Pero si no sabes cuál es la mejor versión, puedes optar por no pasarlo y dejarlo en blanco y lo ajustaremos automáticamente por ti. Y hay muchos otros argumentos que son compatibles en el bloque ResNet, así como en otros bloques.

7. Características de Keras y TensorFlow

Short description:

Admitimos bloques de redes neuronales como ResNet y ExceptionNet, así como bloques de preprocesamiento como normalización, codificación categórica, factorización de texto y aumento de imágenes. AutoKeras es una biblioteca de AutoML para aprendizaje profundo que te permite implementar soluciones simples con solo tres líneas de código. Admite datos de múltiples modelos y multitareas, y se basa en Keras TuneR para la sintonización automática de hiperparámetros. Keras es una biblioteca productiva de soluciones de aprendizaje profundo que se basa en TensorFlow, lo que permite su implementación en diversos entornos y su escalado en múltiples servidores y aceleradores. Agradecemos a Datalab de la Universidad de Texas A&M y al equipo de Keras de Google por su apoyo. Gracias a todos por asistir a la charla.

Y no solo admitimos bloques de redes neuronales como ResNet y ExceptionNet, sino que también admitimos algunos bloques de preprocesamiento como normalización, codificación categórica o factorización de texto, así como aumento de imágenes. Por lo tanto, puedes conectarlos todos juntos para construir una solución de extremo a extremo.

Sí, repasemos lo que hablamos hoy. Lo primero es lo último de lo que hablamos, que es AutoKeras, una biblioteca de AutoML para aprendizaje profundo. Puedes implementar una solución muy simple con solo tres líneas de código. También admitimos datos de múltiples modelos y multitareas. Está construido sobre Keras TuneR, que es una biblioteca muy simple de usar para la sintonización automática de hiperparámetros, que a su vez se basa en Keras. Con una modificación mínima al código existente de Keras, puedes realizar la sintonización automática de hiperparámetros. Keras es una biblioteca radical y productiva para soluciones de aprendizaje profundo. Nuevamente, es muy simple de usar y no necesitas aprender todo de antemano, sino aprender gradualmente a medida que tienes casos de uso más complicados. Todo esto está construido sobre TensorFlow, una base muy poderosa. Puedes implementar el modelo en diversos entornos y escalarlo en múltiples servidores, múltiples GPU y TPUs para acelerar el entrenamiento. Por último, me gustaría agradecer a Datalab de la Universidad de Texas A&M y al equipo de Keras de Google por su apoyo en el proyecto de Keras. Y gracias a todos por asistir a la charla. Gracias.

Es genial que también hayas cubierto lo que más hay dentro de Keras y TensorFlow, ¿verdad? A veces siento que la gente olvida que no solo se trata de optimizadores y capas, ¿verdad? Hay muchas cosas que se pueden usar en tus proyectos.

Sí, sí. En realidad, cubrimos muchas herramientas y muchas personas solo conocen Keras. Entonces, si prueban otras herramientas en la comunidad de Keras, les será de mucha ayuda en su trabajo.

Sí, sí. Y también creo que, ya sabes, es casi como un caso de descubrimiento, ¿verdad? Una vez que alguien comienza a usar una herramienta, se da cuenta de que tal vez hay algo más dentro de sus libros, ¿verdad? Y definitivamente beneficia a todo el ecosistema, ¿verdad? Para descubrir cosas nuevas.

Sí. Sí, genial. Tengo un par de preguntas. La primera pregunta viene de Didu. Espero estar pronunciando correctamente. Hola, Feng. ¿Cuál fue uno de los principales desafíos para hacer que Keras y el aprendizaje profundo en general sean accesibles para los desarrolladores y reducir la barrera del conocimiento? Esto no es solo sobre AutoKeras, sino una pregunta más amplia para ti.

Sí. Actualmente, creo que ya es muy accesible para muchos desarrolladores en la comunidad.

8. Desafíos para principiantes y recursos

Short description:

Los principiantes enfrentan desafíos debido a su limitado conocimiento en matemáticas, estadísticas y programación. Comenzar con proyectos más sencillos como AutoKeras o tomar cursos de nivel principiante puede ser útil. Los sitios web de TensorFlow y AutoKeras proporcionan tutoriales y ejemplos. Francois comparte ejemplos en Twitter y se fomentan las contribuciones de código abierto.

Pero el principal desafío sigue siendo para los principiantes. Por ejemplo, no tienen mucho conocimiento matemático o conocimiento en estadística o incluso experiencias limitadas en programación. De esa manera, creo que aún puede ser más difícil para ellos comenzar. Incluso con los ejemplos o documentación en el sitio web. Por lo tanto, creo que será más útil para ellos comenzar con un proyecto más sencillo como AutoKeras o tomar un curso de nivel principiante para comenzar. Creo que esa es la única forma tal vez.

Bien, bien. Y también el sitio web predeterminado de TensorFlow también tiene muchos tutoriales, ¿verdad? Lo mismo ocurre con AutoKeras, si las personas pueden simplemente hacer clic en el navegador y obtener algunos resultados, definitivamente es una buena estrategia. Sí, y una cosa más. También hay un sitio web de Keras, keras.io, donde las personas también pueden consultar muchos ejemplos. Sí, sí, ese es un buen punto que estás mencionando, porque según recuerdo, Francois también compartía bastantes cosas en Twitter. Entonces, si alguien tiene un ejemplo realmente genial para keras o tal vez cómo usar AutoKeras para este propósito, también pueden enviarlo como código abierto, ¿verdad? y esto será aceptado y tal vez alguien se vuelva famoso en la documentación, ¿verdad? Sí. Genial.

QnA

Using TensorFlow and Keras in the Research Domain

Short description:

La popularidad de TensorFlow y Keras en el ámbito de la investigación depende del área de investigación específica. Si bien los investigadores de aprendizaje profundo a menudo requieren más flexibilidad y enfrentan una curva de aprendizaje al usar TensorFlow y Keras, se están haciendo esfuerzos para abordar estos desafíos. La Ejecución Eager en TensorFlow proporciona más flexibilidad y permite a los investigadores escribir funciones en Python e incorporarlas al gráfico de ejecución. Keras no admite oficialmente ONIX, pero hay herramientas de terceros disponibles para exportar modelos de Keras a ONIX. En cuanto a la optimización de la arquitectura de las redes neuronales, Keras incluye modelos pre-entrenados y modelos sin pesos pre-entrenados. La estrategia predeterminada en AutoKeras es explorar un gran espacio de búsqueda comenzando con modelos conocidos y luego ajustando los hiperparámetros.

De acuerdo, la siguiente pregunta viene de Sanchit, y este usuario está preguntando, hey, ¿cuál es la estrategia para hacer que TensorFlow/Keras sea más popular en el ámbito de la investigación? Supongo que hay esta opinión, y no estamos seguros si está respaldada porque he visto diferentes números que respaldan esto o lo rechazan, se dice que hay muchas personas en la investigación que no usan TensorFlow, sino otros frameworks. ¿Hay algo que tú, por ejemplo, cuando estás desarrollando AutoKeras, haces para dirigirte a la comunidad de investigación o cómo sientes que Keras/TensorFlow es para la investigación o no tanto, ¿verdad? ¿Cuál es tu opinión?

Depende de cuál sea el área de investigación. Si se trata de un área de investigación que no sea la de los investigadores de aprendizaje profundo, entonces las personas también pueden usar fácilmente Keras y TensorFlow, ya que generalmente utilizan los modelos más populares que son fácilmente compatibles con TensorFlow o Keras. Pero para los investigadores de aprendizaje profundo, generalmente hacen algo loco para ajustar los modelos a sus propias necesidades. Para esta flexibilidad, tengo que admitir que todavía hay algunas curvas de aprendizaje para que comiencen con TensorFlow y Keras, pero estamos trabajando duro en eso. Y eso definitivamente es una de nuestras prioridades más altas del equipo, y actualmente estamos respaldando la Ejecución Eager. Por lo tanto, puedes tener un efecto similar al usar Python, puedes escribir funciones en Python y hacerlas parte de una operación de TensorFlow y hacerlas parte del gráfico de ejecución. Por lo tanto, eso también brinda mucha flexibilidad a la comunidad de investigación.

Sí, definitivamente es un buen punto, ¿verdad? Porque supongo que TensorFlow 1.X, ¿verdad, o Keras antes de eso, también era muy estático en el gráfico? Y ahora, esta Ejecución Eager o Eager por defecto a partir de 2.X, esto es muy simple. Y lo que mostraste también en tu ejemplo es una cinta de gradiente, puedes ser muy flexible. Y creo que, François, nuevamente, compartiendo muchos ejemplos de cómo puedes personalizar tus modelos y todo, desde la distribución hasta el manejo de las entradas de datos que ya están manejadas para ti. Y como investigador, necesitas manejar todo. Porque a veces, cuando también leo código de PyTorch, tengo la sensación de que las personas, quiero decir, es flexible, pero también tiene un costo, ¿verdad? Un precio que pagar que debes manejar esas cosas por tu cuenta, ¿verdad?

Genial. Otra pregunta viene de Walter. Y él está preguntando, ¿Keras también apunta a ONIX? ¿Hay soporte? Pero siento que, para mí, hacer que las cosas funcionen con ONIX es un poco incierto. Actualmente, no lo respaldamos oficialmente con ninguno de los desarrolladores de Google. Pero confiamos en la comunidad de código abierto para respaldarlo. Creo que hay algunas herramientas de terceros, solo para respaldar cómo puedes exportar el modelo de Keras a un modelo ONIX. Sí. Otra pregunta viene de Bernhard. Bernhard tuvo una charla relámpago sobre AutoML ayer. Y hoy está preguntando, ¿cómo optimiza Keras la arquitectura de la red neuronal? ¿O simplemente encuentra la mejor red pre-entrenada? Ambos están incluidos. Se incluyen tanto modelos pre-entrenados como modelos sin pesos pre-entrenados. Estamos tratando de explorar un gran espacio de búsqueda comenzando la búsqueda con algunos arranques previos. Como, ya conocemos algunos buenos modelos, como ResNet y EfficientNet con pesos pre-entrenados y algunas convoluciones más pequeñas. Simplemente comenzamos la búsqueda con varios buenos modelos que ya conocemos. Luego comenzaremos a explotar los detalles de los hiperparámetros, como el optimizador y la tasa de aprendizaje. Y esa es la estrategia predeterminada de AutoKeras en este momento.

Customizing Models and Time Series Forecasting

Short description:

AutoKeras permite a los usuarios especificar la estructura de bloques, la profundidad y el ancho de la red. El espacio de búsqueda es limitado, pero incluye los modelos más populares y sus hiperparámetros. Los usuarios pueden configurar sus propios modelos basados en las opciones disponibles. Se pueden compartir ideas adicionales y problemas en AutoKeras GitHub. Se espera que una versión básica de pronóstico de series de tiempo con AutoKeras esté disponible para fin de año, con soporte completo para datos categóricos y numéricos.

Creo que es más adecuado para la mayoría de los casos de uso, pero siempre puedes cambiar otras estrategias como búsqueda aleatoria, hyperband y optimización bayesiana. Genial, es muy bueno. Tal vez, si puedo dar seguimiento desde mi lado a esta pregunta, digamos que haces, no sé, como ResNet, ¿verdad, o Inception, hay bloques particulares, ¿verdad, de la red que no se pueden reutilizar, en todos los casos, ¿verdad? Cuando construyes tu propia red, ¿verdad, reutilizas esos bloques y luego se trata más de las conexiones de salto, ¿verdad, y la arquitectura? ¿O también das, ya sabes, suficiente libertad, ¿verdad, para también diseñar qué estructura de bloques vas a usar, ¿verdad? ¿Qué tan profundo vas en tus optimizaciones o qué tan ancho, básicamente? El usuario puede especificarlo. Pero el espacio de búsqueda sigue siendo limitado, no infinito. Por lo tanto, estamos incluyendo la mayoría, nuestros hiperparámetros de todos esos modelos populares dentro del espacio de búsqueda. Pero para ResNet, no tenemos un número infinito de ResNet, sino solo todas las combinaciones de los hiperparámetros que consistirán en alrededor de 100 modelos ResNet diferentes. Y creemos que eso debería ser suficiente para que un usuario busque y configure el suyo propio.

Sí, genial, genial. Es muy bueno. Y en general, supongo que si alguien tiene ideas adicionales, aún puede crear problemas en AutoKeras en GitHub, ¿verdad? Y luego siempre puedes reutilizarlos y ver qué está sucediendo. Tal vez una última pregunta breve de Miguel. Miguel está preguntando, hey, ¿cuándo podemos esperar la posibilidad de un pronóstico de series de tiempo con AutoKeras? Esperamos tener una versión básica lista para fin de año. Actualmente, en realidad, es utilizable en la última versión pero no lo hemos incluido en la documentación porque no es lo suficientemente estable y no admite datos categóricos. Y para fin de año, esperamos tener la versión completa que admita tanto datos categóricos como datos numéricos y el pronóstico de series de tiempo. Genial, increíble. Gracias nuevamente por responder todas esas preguntas pero también por dar esta charla para nosotros. Fue un placer escucharte. Gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

6 min
Charlie Gerard's Career Advice: Be intentional about how you spend your time and effort
Featured Article
When it comes to career, Charlie has one trick: to focus. But that doesn’t mean that you shouldn’t try different things — currently a senior front-end developer at Netlify, she is also a sought-after speaker, mentor, and a machine learning trailblazer of the JavaScript universe. "Experiment with things, but build expertise in a specific area," she advises.

What led you to software engineering?My background is in digital marketing, so I started my career as a project manager in advertising agencies. After a couple of years of doing that, I realized that I wasn't learning and growing as much as I wanted to. I was interested in learning more about building websites, so I quit my job and signed up for an intensive coding boot camp called General Assembly. I absolutely loved it and started my career in tech from there.
 What is the most impactful thing you ever did to boost your career?I think it might be public speaking. Going on stage to share knowledge about things I learned while building my side projects gave me the opportunity to meet a lot of people in the industry, learn a ton from watching other people's talks and, for lack of better words, build a personal brand.
 What would be your three tips for engineers to level up their career?Practice your communication skills. I can't stress enough how important it is to be able to explain things in a way anyone can understand, but also communicate in a way that's inclusive and creates an environment where team members feel safe and welcome to contribute ideas, ask questions, and give feedback. In addition, build some expertise in a specific area. I'm a huge fan of learning and experimenting with lots of technologies but as you grow in your career, there comes a time where you need to pick an area to focus on to build more profound knowledge. This could be in a specific language like JavaScript or Python or in a practice like accessibility or web performance. It doesn't mean you shouldn't keep in touch with anything else that's going on in the industry, but it means that you focus on an area you want to have more expertise in. If you could be the "go-to" person for something, what would you want it to be? 
 And lastly, be intentional about how you spend your time and effort. Saying yes to everything isn't always helpful if it doesn't serve your goals. No matter the job, there are always projects and tasks that will help you reach your goals and some that won't. If you can, try to focus on the tasks that will grow the skills you want to grow or help you get the next job you'd like to have.
 What are you working on right now?Recently I've taken a pretty big break from side projects, but the next one I'd like to work on is a prototype of a tool that would allow hands-free coding using gaze detection. 
 Do you have some rituals that keep you focused and goal-oriented?Usually, when I come up with a side project idea I'm really excited about, that excitement is enough to keep me motivated. That's why I tend to avoid spending time on things I'm not genuinely interested in. Otherwise, breaking down projects into smaller chunks allows me to fit them better in my schedule. I make sure to take enough breaks, so I maintain a certain level of energy and motivation to finish what I have in mind.
 You wrote a book called Practical Machine Learning in JavaScript. What got you so excited about the connection between JavaScript and ML?The release of TensorFlow.js opened up the world of ML to frontend devs, and this is what really got me excited. I had machine learning on my list of things I wanted to learn for a few years, but I didn't start looking into it before because I knew I'd have to learn another language as well, like Python, for example. As soon as I realized it was now available in JS, that removed a big barrier and made it a lot more approachable. Considering that you can use JavaScript to build lots of different applications, including augmented reality, virtual reality, and IoT, and combine them with machine learning as well as some fun web APIs felt super exciting to me.


Where do you see the fields going together in the future, near or far? I'd love to see more AI-powered web applications in the future, especially as machine learning models get smaller and more performant. However, it seems like the adoption of ML in JS is still rather low. Considering the amount of content we post online, there could be great opportunities to build tools that assist you in writing blog posts or that can automatically edit podcasts and videos. There are lots of tasks we do that feel cumbersome that could be made a bit easier with the help of machine learning.
 You are a frequent conference speaker. You have your own blog and even a newsletter. What made you start with content creation?I realized that I love learning new things because I love teaching. I think that if I kept what I know to myself, it would be pretty boring. If I'm excited about something, I want to share the knowledge I gained, and I'd like other people to feel the same excitement I feel. That's definitely what motivated me to start creating content.
 How has content affected your career?I don't track any metrics on my blog or likes and follows on Twitter, so I don't know what created different opportunities. Creating content to share something you built improves the chances of people stumbling upon it and learning more about you and what you like to do, but this is not something that's guaranteed. I think over time, I accumulated enough projects, blog posts, and conference talks that some conferences now invite me, so I don't always apply anymore. I sometimes get invited on podcasts and asked if I want to create video content and things like that. Having a backlog of content helps people better understand who you are and quickly decide if you're the right person for an opportunity.What pieces of your work are you most proud of?It is probably that I've managed to develop a mindset where I set myself hard challenges on my side project, and I'm not scared to fail and push the boundaries of what I think is possible. I don't prefer a particular project, it's more around the creative thinking I've developed over the years that I believe has become a big strength of mine.***Follow Charlie on Twitter
ML conf EU 2020ML conf EU 2020
41 min
TensorFlow.js 101: ML in the Browser and Beyond
Discover how to embrace machine learning in JavaScript using TensorFlow.js in the browser and beyond in this speedy talk. Get inspired through a whole bunch of creative prototypes that push the boundaries of what is possible in the modern web browser (things have come a long way) and then take your own first steps with machine learning in minutes. By the end of the talk everyone will understand how to recognize an object of their choice which could then be used in any creative way you can imagine. Familiarity with JavaScript is assumed, but no background in machine learning is required. Come take your first steps with TensorFlow.js!
React Advanced Conference 2021React Advanced Conference 2021
21 min
Using MediaPipe to Create Cross Platform Machine Learning Applications with React
Top Content
This talk gives an introduction about MediaPipe which is an open source Machine Learning Solutions that allows running machine learning models on low-powered devices and helps integrate the models with mobile applications. It gives these creative professionals a lot of dynamic tools and utilizes Machine learning in a really easy way to create powerful and intuitive applications without having much / no knowledge of machine learning beforehand. So we can see how MediaPipe can be integrated with React. Giving easy access to include machine learning use cases to build web applications with React.
JSNation 2022JSNation 2022
36 min
Build a 3D Solar System with Hand Recognition and Three.js
Top Content
We live in exciting times. Frameworks like TensorFlowJS allow us to harness the power of AI models in the browser, while others like Three.js allow us to easily create 3D worlds. In this talk we will see how we can combine both, to build a full solar system, in our browser, using nothing but hand gestures!
JSNation Live 2021JSNation Live 2021
39 min
TensorFlow.JS 101: ML in the Browser and Beyond
Discover how to embrace machine learning in JavaScript using TensorFlow.js in the browser and beyond in this speedy talk. Get inspired through a whole bunch of creative prototypes that push the boundaries of what is possible in the modern web browser (things have come a long way) and then take your own first steps with machine learning in minutes. By the end of the talk everyone will understand how to recognize an object of their choice which could then be used in any creative way you can imagine. Familiarity with JavaScript is assumed, but no background in machine learning is required. Come take your first steps with TensorFlow.js!
ML conf EU 2020ML conf EU 2020
32 min
An Introduction to Transfer Learning in NLP and HuggingFace
In this talk I'll start introducing the recent breakthroughs in NLP that resulted from the combination of Transfer Learning schemes and Transformer architectures. The second part of the talk will be dedicated to an introduction of the open-source tools released HuggingFace, in particular our Transformers, Tokenizers and Datasets libraries and our models.

Workshops on related topic

JSNation Live 2021JSNation Live 2021
81 min
Intro to AI for JavaScript Developers with Tensorflow.js
Workshop
Have you wanted to explore AI, but didn't want to learn Python to do it? Tensorflow.js lets you use AI and deep learning in javascript – no python required!
We'll take a look at the different tasks AI can help solve, and how to use Tensorflow.js to solve them. You don't need to know any AI to get started - we'll start with the basics, but we'll still be able to see some neat demos, because Tensorflow.js has a bunch of functionality and pre-built models that you can use on the server or in the browser.
After this workshop, you should be able to set up and run pre-built Tensorflow.js models, or begin to write and train your own models on your own data.
ML conf EU 2020ML conf EU 2020
160 min
Hands on with TensorFlow.js
Workshop
Come check out our workshop which will walk you through 3 common journeys when using TensorFlow.js. We will start with demonstrating how to use one of our pre-made models - super easy to use JS classes to get you working with ML fast. We will then look into how to retrain one of these models in minutes using in browser transfer learning via Teachable Machine and how that can be then used on your own custom website, and finally end with a hello world of writing your own model code from scratch to make a simple linear regression to predict fictional house prices based on their square footage.
ML conf EU 2020ML conf EU 2020
112 min
The Hitchhiker's Guide to the Machine Learning Engineering Galaxy
Workshop
Are you a Software Engineer who got tasked to deploy a machine learning or deep learning model for the first time in your life? Are you wondering what steps to take and how AI-powered software is different from traditional software? Then it is the right workshop to attend.
The internet offers thousands of articles and free of charge courses, showing how it is easy to train and deploy a simple AI model. At the same time in reality it is difficult to integrate a real model into the current infrastructure, debug, test, deploy, and monitor it properly. In this workshop, I will guide you through this process sharing tips, tricks, and favorite open source tools that will make your life much easier. So, at the end of the workshop, you will know where to start your deployment journey, what tools to use, and what questions to ask.
ML conf EU 2020ML conf EU 2020
146 min
Introduction to Machine Learning on the Cloud
Workshop
This workshop will be both a gentle introduction to Machine Learning, and a practical exercise of using the cloud to train simple and not-so-simple machine learning models. We will start with using Automatic ML to train the model to predict survival on Titanic, and then move to more complex machine learning tasks such as hyperparameter optimization and scheduling series of experiments on the compute cluster. Finally, I will show how Azure Machine Learning can be used to generate artificial paintings using Generative Adversarial Networks, and how to train language question-answering model on COVID papers to answer COVID-related questions.