Creación de Modelos con TensorFlow JS usando API de Layers
Clase 7 de 21 • Curso de TensorFlow.js
Contenido del curso
Clase 7 de 21 • Curso de TensorFlow.js
Contenido del curso
Julio J Yépez
Osvaldo Frias
Julio J Yépez
Juan Carlos Valencia López
Julio J Yépez
Clever Serrano H
Alberto Perdomo
Edgar Andrés Montenegro Martínez
Alejandro Santamaria
José Alberto Ortiz Vargas
José Alberto Ortiz Vargas
José Alberto Ortiz Vargas
José Alberto Ortiz Vargas
Enmanuel Castillo
Addison Misam Calles Toris
BinaryTreeCode
Jose Armando Lopez Rodriguez
La implementación de capas mediante el API de layers de tensorflow.JS, es equivalente a la implementación de la API de Keras en tensorflow para python o c++. De hecho “layers” está basada en “Keras”.
Ref: https://www.tensorflow.org/js/guide/layers_for_keras_users
Acá dejo una comparativa:
Entradas, capas y salidas
Como se ve en el slide del minuto 06:30, “Softmax” es una generalización de lo que se conoce como Función Sigmoide o Función de Regresión Logística, que se usa para comprimir valores arbitrarios (convertirlos por equivalencia directa) en un rango controlado de entre 0 y 1. De manera similar la función tanh (tangente hiperbólica) comprime los valores en un rango de -1 a 1 ... así hay otras funciones que dependiendo del caso se pueden usar con mejor resultado.
para iniciar con api Layers para hacer cosas complejas Core API
Una de las razones principales es porque la definición de las capas de entrada, ocultas y de salida, usando layers, es mucho más simplificada (y de alto nivel), ya que permite el uso de funciones de activación, ajuste de parámetros y cálculo de pérdida (costo) mediante valores predefinidos (son como "plantillas").
Mientras que al definir las capas con el Core API, se deberán especificar estas funciones de manera explícita; lo bueno es que al definirlas de esta manera puedes implementar lógicas personalizadas, funciones y cálculos intermedios específicos para cada contexto o caso de uso, lo que hace mucho más flexible la generación de modelos más precisos y a la medida.
¿Algún curso que explique esto mejor? Tal vez me estoy adelantado, pero no crea una imagen mental de lo que realiza el código. Copiar por copiar no ayuda mucho
Mira este es el flujo de trabajo de TensorFlow y Keras:
Cuando el habla de layers o capas se refiere a las siguientes:
Existen otras capas, que se usan mucho en computer vision y procesmiento del lenguaje natural o analisis secuencial como video o finanzas y estas son:
Ahora en cuanto a las operaciones con el core API, son operaciones matriciales puras. Para entender esto es nesesario que tengas claro la matematica detras del Machine Learning como es:
Los siguientes cursos de Platzi son fundamentales para lograr esto:
Por otra parte esta serie de videos de youtube te pueden ayudar a aclarar varios conceptos de redes neuronales
Los navegadores ya interpretan Tensorflow directamente o hay que descargar algo?
se debe importar la librería, se puede hacer desde un CDN, ej. <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.0.0/dist/tf.min.js"></script>
La API Core
Si utilizas esta API tendras mas control, pero es mas dificil ya que deberas crear metodos para serializar, inicializar y validar sus parametros.
Componentes Principales del Modelo para una Red Neuronal
Las ventajas de Layers
Ademas de la validacion, Layers proporciona:
Inicializacion de pesos
Serializacion (para guardar los modelos)
Monitoreo del entrenamiento
Portabilidad
Revision de seguridad
!
Validacion del Modelo
Ambos modelos son instancias LayersModels y requieren la especificacion de la forma que recibira la entrada (input), TensorFlow.js hace un calculo automatico de las formas que tendran los tensores intermedios y de crear los parametros.
Si existiera alguna incompatibilidad entre dos capas consecutivas, la libreria se encargara de notificartelo.
La base de una red neuronal:
inputShape en la primera capa corresponde a la cantidad de pixeles en la imagen de entrada, en este caso las imágenes de entrada son de 28 x 28 = 784.units en la capa de salida corresponden a a la cantidad de posibilidades que esperamos tener de la red, en este caso, se requiere detectar números del 0 al 9 por lo que la cantidad de neuronas de salida son 10.Recomiendo este video expilca muy bien el tema y hace un ejemplo con codigo para los que les gusta programar: https://www.youtube.com/watch?v=_TInU2fI__I&t=1234s
Importante determinar cual sera la capa de entrada , la capa oculta y la capa de salia, previo a ello hacer un pre procesamiento de datos,antes de empezar con el entrenamiento.