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
- Accedeix a la Consola de GCP.
- Crea un nou projecte o selecciona un projecte existent.
- Activa la facturació per al projecte.
Pas 2: Configurar l'API de Machine Learning
- A la consola de GCP, navega a "API & Services" > "Library".
- Cerca "AI Platform" i activa l'API.
Pas 3: Configurar l'entorn de treball
-
Instal·la el SDK de Google Cloud al teu ordinador:
curl https://sdk.cloud.google.com | bash exec -l $SHELL gcloud init
-
Autentica't amb el teu compte de Google:
gcloud auth login
-
Configura el projecte:
gcloud config set project [PROJECT_ID]
Pas 4: Crear una màquina virtual amb TensorFlow
- A la consola de GCP, navega a "Compute Engine" > "VM instances".
- 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
- 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
-
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
-
Puja el codi d'entrenament a GCS:
gsutil cp [LOCAL_TRAINING_SCRIPT] gs://[BUCKET_NAME]/[SCRIPT_PATH]
-
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
- 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
-
Crea un model a AI Platform:
gcloud ai-platform models create [MODEL_NAME]
-
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
- 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
- Utilitza el conjunt de dades CIFAR-10 per entrenar un model de classificació d'imatges.
- Puja les dades a GCS.
- Escriu el codi d'entrenament i executa'l a AI Platform.
- Guarda el model entrenat a GCS.
Exercici 2: Implementar el model entrenat
- Implementa el model entrenat a AI Platform.
- 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
-
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 -
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.
Curs de Google Cloud Platform (GCP)
Mòdul 1: Introducció a Google Cloud Platform
- Què és Google Cloud Platform?
- Configurar el teu compte de GCP
- Visió general de la consola de GCP
- Comprendre projectes i facturació
Mòdul 2: Serveis bàsics de GCP
Mòdul 3: Xarxes i seguretat
Mòdul 4: Dades i analítica
Mòdul 5: Aprenentatge automàtic i IA
Mòdul 6: DevOps i monitoratge
- Cloud Build
- Repositoris de codi font al núvol
- Funcions al núvol
- Monitoratge de Stackdriver
- Gestor de desplegament al núvol
Mòdul 7: Temes avançats de GCP
- Híbrid i multi-núvol amb Anthos
- Computació sense servidor amb Cloud Run
- Xarxes avançades
- Millors pràctiques de seguretat
- Gestió i optimització de costos