Redes convolucionales y su importancia

1

La importancia del computer vision

2

¿Qué herramientas usaremos para redes neuronales convolucionales?

3

¿Qué son las redes convolucionales?

Mi primera red neuronal convolucional

4

Creando nuestra primera red convolucional

5

Entrenando nuestra primera red convolucional

Manejo de imágenes

6

Consejos para el manejo de imágenes

7

Manejo de imágenes con Python

Fundamentos de redes neuronales convolucionales

8

Kernel en redes neuronales

9

El kernel en acción

10

Padding y Strides

11

Capa de pooling

12

Arquitectura de redes convolucionales

Quiz: Fundamentos de redes neuronales convolucionales

Resolviendo un problema de clasificación

13

Clasificación con redes neuronales convolucionales

14

Creación de red convolucional para clasificación

15

Entrenamiento de un modelo de clasificación con redes convolucionales

Optimización de red neuronal convolucional

16

Data augmentation

17

Aplicando data augmentation

18

Callbacks: early stopping y checkpoints

19

Batch normalization

20

Optimización de modelo de clasificación

21

Entrenamiento de nuestro modelo de clasificación optimizado

Quiz: Optimización de red neuronal convolucional

Resolviendo una competencia de Kaggle

22

Clasificando entre perros y gatos

23

Entrenamiento del modelo de clasificación de perros y gatos

Resumen y siguientes pasos

24

Siguientes pasos con redes neuronales convolucionales

25

Comparte tu proyecto de clasificación con redes convolucionales y certifícate

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
0 Hrs
27 Min
28 Seg

Callbacks: early stopping y checkpoints

18/25
Recursos

Aportes 8

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hay que tener mucho cuidado a la hora de copiar arquitecturas de red con la asignación, esto puede traer consecuencias inesperadas que son muy difíciles de depurar, a mí me pasó y les vengo a contar un poco.

Para resumir, cuando quieran crear una instancia de una red ya generada EVITEN a toda costa usar la asignación.

model2 = model1

Esto copiará la dirección de memoria del objeto model1 a model2, ¿qué significa esto? Que cuando modifiques model2, el primero también se modificará dado que no son objetos nuevos sino apuntadores al mismo espacio de memoria (voy a dejar la explicación en una respuesta).

En el caso del video no se nota totalmente, pero de manera inconsciente, al cargar los datos del hdf5 en model2, también se han cargado en model1.

La manera de copiar correctamente un modelo (porque se quiere mantener su arquitectura) sin generar un apuntador de memoria es con la función clone_model que viene de keras.models

from keras.models import clone_model
model2 = clone_model(model1)

Esto lo resalto por experiencia personal, dado que en mi proyecto personal copié una instancia de una red a otra, y cuando realiza el entrenamiento en el modelo 2, los datos del 1 se arruinaban y a la hora de probar el rendimiento siempre era inconsistente.

De todo el curso esta fue la clase que mas gusto, la uso cada vez que creo redes de regresiones y clasificaciones,e s super util 😃

UN INCREIBLE CURSO, MUY MUY CARGADO, DE VER CADA VIDEO VARIAS VECES, Y COMO SEA, ES UN GRAN CURSO, GRACIAS PLATZI POR DARNOS TAL NIVEL DE EDUCACION

Los callbacks se pueden definir como clases personalizadas que heredan de la clase base tf.keras.callbacks.Callback1 o se pueden usar algunos de los callbacks predefinidos que ofrece TensorFlow2. Algunos de los callbacks más comunes son:

ModelCheckpoint: Guarda el modelo o los pesos en un archivo después de cada época o cuando se alcanza el mejor rendimiento en una métrica.
EarlyStopping: Detiene el entrenamiento cuando una métrica deja de mejorar después de un número de épocas.
LearningRateScheduler: Cambia la tasa de aprendizaje según una función o un programa dado.
TensorBoard: Genera registros para visualizar el entrenamiento y el rendimiento del modelo en TensorBoard.
ReduceLROnPlateau: Reduce la tasa de aprendizaje cuando una métrica deja de mejorar.

Keras Callbacks: Early Stopping y Checkpoints

Los Callbacks

En Keras son funciones que se pueden aplicar en diferentes etapas del proceso de entrenamiento (al inicio, al final, al inicio de cada época, al final de cada época, etc.). Permiten tener un mayor control sobre el comportamiento del modelo durante el entrenamiento.


El Early Stopping

Es una técnica para evitar el sobreajuste. Consiste en detener el entrenamiento cuando una métrica deje de mejorar. Keras proporciona esta funcionalidad a través del callback EarlyStopping.


Checkpoints

Permiten guardar el modelo o los pesos del modelo en un archivo, para poder reanudar el entrenamiento donde se dejó en caso de que se interrumpa, o para poder usar el modelo sin tener que volver a entrenarlo. Keras proporciona esta funcionalidad a través del callback

Los \*\*callbacks\*\* en Keras son funciones especiales que se ejecutan durante el entrenamiento de un modelo. Dos de los callbacks más populares son \*\*Early Stopping\*\* y \*\*Model Checkpoint\*\*. Estos ayudan a mejorar el rendimiento del modelo y a prevenir el sobreajuste. A continuación, te explico cada uno con ejemplos. \### 1. \*\*Early Stopping\*\* El \*\*Early Stopping\*\* se usa para detener el entrenamiento cuando el modelo deja de mejorar. Esto previene el sobreentrenamiento y el ajuste excesivo (overfitting) a los datos de entrenamiento. \#### ¿Cómo funciona? Monitorea una métrica, como la \*\*pérdida en el conjunto de validación\*\*. Si esa métrica no mejora después de un número determinado de épocas, el entrenamiento se detiene automáticamente. \#### Ejemplo de Early Stopping ```python from tensorflow.keras.callbacks import EarlyStopping \# Definir el callback early\_stopping = EarlyStopping(monitor='val\_loss', patience=3, restore\_best\_weights=True) \# Entrenamiento del modelo con Early Stopping history = model.fit(x\_train, y\_train, validation\_data=(x\_valid, y\_valid), epochs=50, callbacks=\[early\_stopping]) ``` \*\*Explicación:\*\* \- `monitor='val\_loss'`: Monitorea la pérdida en los datos de validación. \- `patience=3`: Si la métrica monitoreada no mejora en 3 épocas consecutivas, el entrenamiento se detiene. \- `restore\_best\_weights=True`: Al finalizar el entrenamiento, el modelo restaurará los pesos de la época en la que tuvo el mejor rendimiento. \--- \### 2. \*\*Model Checkpoint\*\* El \*\*Model Checkpoint\*\* se usa para guardar el modelo durante el entrenamiento. Puedes configurar el callback para que guarde el modelo cuando una métrica específica (por ejemplo, `val\_loss`) mejore. \#### ¿Cómo funciona? Se guardan los pesos del modelo a medida que el entrenamiento progresa, y se pueden guardar los pesos del mejor modelo o de todos los modelos entrenados. \#### Ejemplo de Model Checkpoint ```python from tensorflow.keras.callbacks import ModelCheckpoint \# Definir el callback para guardar los mejores pesos checkpoint = ModelCheckpoint('best\_model.h5', monitor='val\_loss', save\_best\_only=True, verbose=1) \# Entrenamiento del modelo con Model Checkpoint history = model.fit(x\_train, y\_train, validation\_data=(x\_valid, y\_valid), epochs=50, callbacks=\[checkpoint]) ``` \*\*Explicación:\*\* \- `'best\_model.h5'`: Archivo donde se guardarán los pesos del mejor modelo. \- `monitor='val\_loss'`: Monitorea la pérdida en los datos de validación. \- `save\_best\_only=True`: Solo se guardará el modelo cuando haya una mejora en la métrica monitoreada. \- `verbose=1`: Muestra mensajes detallados sobre cuándo se guarda el modelo. \--- \### Combinando \*\*Early Stopping\*\* y \*\*Model Checkpoint\*\* También puedes usar ambos callbacks juntos para que el modelo se detenga automáticamente y se guarden los mejores pesos. ```python \# Definir ambos callbacks early\_stopping = EarlyStopping(monitor='val\_loss', patience=3, restore\_best\_weights=True) checkpoint = ModelCheckpoint('best\_model.h5', monitor='val\_loss', save\_best\_only=True, verbose=1) \# Entrenamiento del modelo con ambos callbacks history = model.fit(x\_train, y\_train, validation\_data=(x\_valid, y\_valid), epochs=50, callbacks=\[early\_stopping, checkpoint]) ``` Esto garantizará que el modelo se detenga cuando deje de mejorar y que se guarde el mejor modelo encontrado durante el entrenamiento. \### Resumen: \- \*\*Early Stopping\*\*: Detiene el entrenamiento cuando el modelo deja de mejorar, evitando el sobreajuste. \- \*\*Model Checkpoint\*\*: Guarda el modelo cuando mejora durante el entrenamiento, permitiendo usar los mejores pesos encontrados.
Yo solo veo que hacen modelos de entrenamiento pero ninguno saca un modelo para usar un algoritmo de hacer conteo de vehiculos o objetos dentro de una imagen o video como lo hace yolo

me volaron la peluca estas cosas 😄