Compila una red neuronal de TensorFlow

Un instructivo basado en un ejemplo sobre cómo compilar una red neuronal de TensorFlow para obtener una mejor exactitud.

Puedes consultar un modelo directamente y probar los resultados que se muestran cuando usas valores de parámetros diferentes con la consola de Cloud o con una llamada directa a la API de Vertex AI.

Mensaje Formato libre

Enséñame a usar TensorFlow para crear una red neuronal precisa con algunos ejemplos de código. Incluye estadísticas sobre cómo se mejora la exactitud del modelo cuando se le agrega capas.

Respuesta

Compila redes neuronales exactas con TensorFlow

TensorFlow es una biblioteca potente para crear y entrenar redes neuronales. A continuación, se presenta una guía básica con ejemplos para empezar:

1. Configuración:


import tensorflow as tf
from tensorflow import keras

Usaremos la API de Keras de TensorFlow, que proporciona una interfaz de alto nivel para compilar y entrenar modelos.

2. Preparación de datos:

  • Carga y procesa previamente datos: Carga tus datos y divídelos en conjuntos de entrenamiento y de prueba. El procesamiento previo puede incluir normalización, codificación one-hot, etc., según tus datos.

(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
  • Crea conjuntos de datos de TensorFlow: convierte tus datos en objetos tf.data.Dataset para canalizaciones de entrada de datos eficientes.

train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(32)
test_dataset = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)

3. Compila el modelo:

  • API secuencial: usaremos la API de Sequential para apilar capas de forma lineal.

model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)), # Input layer for MNIST
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax') # Output layer with 10 classes
])
  • Agrega capas: empieza con un modelo simple y agrega más capas de forma gradual para aumentar su complejidad y capacidad de aprendizaje. Cada capa extrae atributos cada vez más complejos de los datos de entrada.

4. Compilación el modelo:

  • Optimizador: Elige un optimizador, como Adam o SGD, para actualizar los pesos durante el entrenamiento.
  • Función de pérdida: selecciona una función de pérdida apropiada para tu tarea, p.ej., entropía cruzada categórica para la clasificación de clases múltiples.
  • Métricas: Define las métricas de las que se debe realizar un seguimiento durante el entrenamiento y la evaluación; p.ej., la exactitud.

model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])

5. Entrenamiento del modelo:

  • Ajusta el modelo: Entrena el modelo con los datos de entrenamiento durante una cierta cantidad de ciclos de entrenamiento.

model.fit(train_dataset, epochs=5)

6. Evaluación del modelo:

  • Evalúa el rendimiento: Evalúa el rendimiento del modelo en los datos de prueba.

test_loss, test_acc = model.evaluate(test_dataset)
print('Test accuracy:', test_acc)

Estadísticas sobre la precisión y las capas:

  • Más capas, más complejidad: Agregar capas permite que el modelo aprenda patrones y relaciones más intrincados en los datos, lo que podría llevar a una mayor exactitud.
  • Jerarquía de atributos: Cada capa extrae atributos del resultado de la capa anterior, lo que construye una jerarquía de representaciones cada vez más abstractas. Las capas más profundas capturan atributos de alto nivel, como formas y objetos.
  • Gradientes de borrado excesivo: Sin embargo, agregar demasiadas capas puede provocar un desvanecimiento del gradiente o un crecimiento excesivo, lo que puede dificultar el entrenamiento. Las técnicas como la normalización por lotes y la inicialización cuidadosa ayudan a mitigar estos problemas.
  • Sobreajuste: Los modelos más complejos son propensos al sobreajuste, en el que se memorizan los datos de entrenamiento, pero se generalizan de manera incorrecta ante ejemplos no vistos. Las técnicas de regularización, como el abandono y la regularización L1/L2, pueden evitar el sobreajuste.

Recuerda: Encontrar la arquitectura óptima implica experimentar y considerar la tarea y el conjunto de datos específicos. Empieza de forma simple y aumenta la complejidad de forma gradual y supervisa el rendimiento para evitar el sobreajuste.

Exploración adicional

  • Explora diferentes tipos de capas, como las convolucionales para datos de imágenes y las recurrentes para los datos secuenciales.
  • Experimentar con hiperparámetros como la tasa de aprendizaje, el tamaño del lote y la cantidad de ciclos de entrenamiento
  • Usa técnicas como la interrupción anticipada y el punto de control de modelos para mejorar la eficiencia del entrenamiento.

TensorFlow ofrece un amplio ecosistema de herramientas y recursos para ayudarte a crear e implementar redes neuronales precisas.

Modelo: gemini-1.5-pro-preview-0409
Temperatura: 1
Cantidad máxima de tokens de salida: 8192
K superior 40
P superior 0.95