Introducció

TensorFlow és una biblioteca de codi obert per a l'aprenentatge automàtic desenvolupada per Google. GCP proporciona una infraestructura robusta per executar models de TensorFlow de manera eficient i escalable. En aquest tema, explorarem com utilitzar TensorFlow a GCP, incloent-hi la configuració de l'entorn, l'entrenament de models i la implementació de models entrenats.

Objectius

  • Comprendre com configurar l'entorn de TensorFlow a GCP.
  • Aprendre a entrenar models de TensorFlow utilitzant GCP.
  • Implementar models de TensorFlow a GCP per a la inferència.

Configuració de l'entorn de TensorFlow a GCP

Pas 1: Crear un projecte a GCP

  1. Accedeix a la Consola de GCP.
  2. Crea un nou projecte o selecciona un projecte existent.
  3. Activa la facturació per al projecte.

Pas 2: Configurar l'API de Machine Learning

  1. A la consola de GCP, navega a "API & Services" > "Library".
  2. Cerca "AI Platform" i activa l'API.

Pas 3: Configurar l'entorn de treball

  1. Instal·la el SDK de Google Cloud al teu ordinador:

    curl https://sdk.cloud.google.com | bash
    exec -l $SHELL
    gcloud init
    
  2. Autentica't amb el teu compte de Google:

    gcloud auth login
    
  3. Configura el projecte:

    gcloud config set project [PROJECT_ID]
    

Pas 4: Crear una màquina virtual amb TensorFlow

  1. A la consola de GCP, navega a "Compute Engine" > "VM instances".
  2. Crea una nova instància i selecciona una imatge que inclogui TensorFlow, com ara "Deep Learning VM".

Entrenament de models de TensorFlow a GCP

Pas 1: Preparar les dades

  1. Emmagatzema les dades al Google Cloud Storage (GCS):
    gsutil cp [LOCAL_DATA_PATH] gs://[BUCKET_NAME]/[DATA_PATH]
    

Pas 2: Escriure el codi d'entrenament

  1. Escriu el codi d'entrenament de TensorFlow. Aquí tens un exemple bàsic:

    import tensorflow as tf
    from tensorflow.keras import layers, models
    
    # Carregar les dades
    (train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()
    
    # Preprocessar les dades
    train_images = train_images / 255.0
    test_images = test_images / 255.0
    
    # Definir el model
    model = models.Sequential([
        layers.Flatten(input_shape=(28, 28)),
        layers.Dense(128, activation='relu'),
        layers.Dense(10, activation='softmax')
    ])
    
    # Compilar el model
    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    
    # Entrenar el model
    model.fit(train_images, train_labels, epochs=5)
    
    # Avaluar el model
    test_loss, test_acc = model.evaluate(test_images, test_labels)
    print(f'Test accuracy: {test_acc}')
    

Pas 3: Entrenar el model a GCP

  1. Puja el codi d'entrenament a GCS:

    gsutil cp [LOCAL_TRAINING_SCRIPT] gs://[BUCKET_NAME]/[SCRIPT_PATH]
    
  2. Executa el treball d'entrenament a AI Platform:

    gcloud ai-platform jobs submit training [JOB_NAME] 
    --module-name trainer.task
    --package-path [LOCAL_PACKAGE_PATH]
    --staging-bucket gs://[BUCKET_NAME]
    --region [REGION]
    --runtime-version 2.3
    --python-version 3.7
    --
    --data-dir gs://[BUCKET_NAME]/[DATA_PATH]
    --output-dir gs://[BUCKET_NAME]/[OUTPUT_PATH]

Implementació de models de TensorFlow a GCP

Pas 1: Exportar el model entrenat

  1. Després d'entrenar el model, guarda'l a GCS:
    model.save('gs://[BUCKET_NAME]/[MODEL_PATH]')
    

Pas 2: Implementar el model a AI Platform

  1. Crea un model a AI Platform:

    gcloud ai-platform models create [MODEL_NAME]
    
  2. Crea una versió del model:

    gcloud ai-platform versions create [VERSION_NAME] 
    --model [MODEL_NAME]
    --origin gs://[BUCKET_NAME]/[MODEL_PATH]
    --runtime-version 2.3
    --python-version 3.7

Pas 3: Realitzar inferències amb el model implementat

  1. Envia una sol·licitud d'inferència:
    gcloud ai-platform predict 
    --model [MODEL_NAME]
    --version [VERSION_NAME]
    --json-instances [INPUT_JSON]

Exercicis pràctics

Exercici 1: Entrenar un model de classificació d'imatges

  1. Utilitza el conjunt de dades CIFAR-10 per entrenar un model de classificació d'imatges.
  2. Puja les dades a GCS.
  3. Escriu el codi d'entrenament i executa'l a AI Platform.
  4. Guarda el model entrenat a GCS.

Exercici 2: Implementar el model entrenat

  1. Implementa el model entrenat a AI Platform.
  2. Realitza inferències amb el model implementat utilitzant noves imatges del conjunt de dades CIFAR-10.

Solucions

Solució a l'Exercici 1

import tensorflow as tf
from tensorflow.keras import layers, models

# Carregar les dades
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.cifar10.load_data()

# Preprocessar les dades
train_images = train_images / 255.0
test_images = test_images / 255.0

# Definir el model
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(10, activation='softmax')
])

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

# Entrenar el model
model.fit(train_images, train_labels, epochs=10)

# Avaluar el model
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test accuracy: {test_acc}')

# Guardar el model
model.save('gs://[BUCKET_NAME]/cifar10_model')

Solució a l'Exercici 2

  1. Implementa el model a AI Platform:

    gcloud ai-platform models create cifar10_model
    gcloud ai-platform versions create v1 
    --model cifar10_model
    --origin gs://[BUCKET_NAME]/cifar10_model
    --runtime-version 2.3
    --python-version 3.7
  2. Realitza inferències:

    gcloud ai-platform predict 
    --model cifar10_model
    --version v1
    --json-instances input.json

Conclusió

En aquest tema, hem après com configurar l'entorn de TensorFlow a GCP, entrenar models de TensorFlow utilitzant AI Platform i implementar models entrenats per a la inferència. Aquests coneixements són fonamentals per aprofitar la potència de GCP en projectes d'aprenentatge automàtic. En el següent tema, explorarem l'API de llenguatge natural de GCP.

© Copyright 2024. Tots els drets reservats