C贸mo utilizar TensorFlow 2.0 con Python

1

Redes neuronales con TensorFlow

2

Introducci贸n a TensorFlow 2.0

Manejo y preprocesamiento de datos para redes neuronales

3

Uso de data pipelines

4

C贸mo cargar bases de datos JSON

5

Cargar bases de datos CSV y BASE 64

6

Preprocesamiento y limpieza de datos

7

Keras datasets

8

Datasets generators

9

Aprende a buscar bases de datos para deep learning

10

C贸mo distribuir los datos

11

Crear la red neural, definir capas, compilar, entrenar, evaluar y predicciones

Optimizaci贸n de precisi贸n de modelos

12

M茅todos de regularizaci贸n: overfitting y underfitting

13

Recomendaciones pr谩cticas para ajustar un modelo

14

M茅tricas para medir la eficiencia de un modelo: callback

15

KerasTuner: buscando la mejor configuraci贸n para tu modelo

16

KerasTuner: buscando la mejor configuraci贸n para tu modelo

17

Monitoreo del entrenamiento en tiempo real: early stopping y patience

18

KerasTuner: construyendo el modelo

19

KerasTuner: buscando la mejor configuraci贸n para tu modelo

20

KerasTuner: buscando la mejor configuraci贸n para tu modelo

21

KerasTuner: buscando la mejor configuraci贸n para tu modelo

Almacenamiento y carga de modelos

22

Almacenamiento y carga de modelos: pesos y arquitectura

23

Criterios para almacenar los modelos

Fundamentos de aprendizaje por transferencia

24

Introducci贸n al aprendizaje por transferencia

25

Cu谩ndo utilizar aprendizaje por transferencia

26

Carga de sistemas pre-entrenados en Keras

27

API funcional de Keras

28

Uso sistemas pre-entrenados de TensorFlow Hub

Resultados de entrenamiento

29

Introducci贸n a variables relevantes del TensorBoard

30

An谩lisis y publicaci贸n de resultados del entrenamiento

31

Introducci贸n al despliegue de modelos en producci贸n

32

Siguientes pasos con deep learning

33

Comparte tu proyecto de detecci贸n de se帽as y certif铆cate

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Uso sistemas pre-entrenados de TensorFlow Hub

28/33
Recursos

Para esta ocasi贸n importaremos modelos desde TensorFlow Hub, una plataforma dedicada a la divulgaci贸n de configuraciones por parte de la comunidad.

Tensorflow Hub con Keras

Para usar el hub, debemos importarlo.

import tensorflow_hub as hub

Antes de todo, debemos detectar qu茅 configuraci贸n usaremos, para esta ocasi贸n usaremos la arquitectura MobileNetV1.

Este modelo es secuencial, por lo que stackearemos sus capas en un modelo de este tipo.

Para los modelos del hub, basta con agregar una capa de entrada, a帽adir la capa de KerasLayer con la URL del sitio (no olvides configurarlo como no entrenable) y a partir de este punto podr谩s inyectar tu propia arquitectura.

module_url = "https://tfhub.dev/google/imagenet/mobilenet_v1_050_160/classification/4"

model_hub = tf.keras.Sequential([
    tf.keras.layers.InputLayer(input_shape = (150, 150, 3)),
    hub.KerasLayer(module_url, trainable = False),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation = "relu"),
    tf.keras.layers.Dropout(rate = 0.2),
    tf.keras.layers.Dense(len(classes), activation = "softmax")
])

Antes de compilar la red debemos hacer build al modelo, siendo expl铆citos en las dimensiones de su tensor, en este caso MobileNet soporta frames de video, por lo que para usarlo como detector de im谩genes bastar谩 con anular esta dimensi贸n.

model_hub.build((None, 150, 150, 3))
model_hub.summary()

Podemos notar en la arquitectura que se a帽ade toda la capa cargada y posteriormente nuestra arquitectura.

Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 keras_layer_2 (KerasLayer)  (None, 1001)              1343049   
                                                                 
 flatten_2 (Flatten)         (None, 1001)              0         
                                                                 
 dense (Dense)               (None, 128)               128256    
                                                                 
 dropout (Dropout)           (None, 128)               0         
                                                                 
 dense_1 (Dense)             (None, 24)                3096      
                                                                 
=================================================================
Total params: 1,474,401
Trainable params: 131,352
Non-trainable params: 1,343,049
_________________________________________________________________

El proceso de compilaci贸n y entrenamiento ser谩 el tradicional.

model_hub.compile(optimizer = "adam", loss = "categorical_crossentropy", metrics = ["accuracy"])

 history_hub = model_hub.fit(
     train_generator_resize,
     epochs = 5,
     validation_data = validation_generator_resize
 )

Podemos notar que el rendimiento es menor al de Inception, pero en contraparte su tiempo de procesamiento es menor.

57/57 [==============================] - 5s 91ms/step - loss: 0.4389 - accuracy: 0.8461

Este tipo de modelos son 煤tiles a la hora de procesar im谩genes en vivo (como en c谩maras de drones). Pero traen en consecuencias una p茅rdida de precisi贸n, depender谩 de tu proyecto aceptar estas alternativas o sacrificar tiempo de c贸mputo por mejores resultados.

Contribuci贸n creada por Sebasti谩n Franco G贸mez.

Aportes 3

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

TensorFlow Hub
Repositorio de modelos de aprendizaje autom谩tico entrenados
https://tfhub.dev/

para la instalacion de hub, si no la tienen
!pip install --upgrade tensorflow_hub