Introducció
L'execució immediata (Eager Execution) és un mode de TensorFlow que permet l'execució immediata de les operacions, sense necessitat de construir gràfics computacionals. Això fa que el codi sigui més intuïtiu i fàcil de depurar, especialment per a aquells que estan començant amb TensorFlow.
Avantatges de l'Execució Immediata
- Facilitat d'ús: Permet escriure codi de TensorFlow de manera més natural i intuïtiva.
- Depuració: Facilita la depuració del codi, ja que les operacions es poden executar i inspeccionar immediatament.
- Integració amb Python: Millora la integració amb les biblioteques de Python, com ara NumPy.
Activació de l'Execució Immediata
Per activar l'execució immediata, només cal una línia de codi:
Exemple Pràctic
Vegem un exemple pràctic de com funciona l'execució immediata amb TensorFlow.
Exemple 1: Operacions bàsiques amb tensors
import tensorflow as tf # Activar l'execució immediata tf.config.run_functions_eagerly(True) # Crear tensors a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # Operacions amb tensors c = a + b d = a * b print("a + b =", c.numpy()) print("a * b =", d.numpy())
Explicació del codi:
- Importació de TensorFlow: Importem la biblioteca TensorFlow.
- Activació de l'execució immediata: Activem l'execució immediata amb
tf.config.run_functions_eagerly(True)
. - Creació de tensors: Creem dos tensors constants
a
ib
. - Operacions amb tensors: Realitzem operacions de suma i multiplicació amb els tensors.
- Impressió dels resultats: Utilitzem
.numpy()
per obtenir els valors dels tensors i imprimir-los.
Exemple 2: Creació i entrenament d'un model simple
import tensorflow as tf import numpy as np # Activar l'execució immediata tf.config.run_functions_eagerly(True) # Generar dades sintètiques x = np.array([[1.0], [2.0], [3.0], [4.0]], dtype=np.float32) y = np.array([[0.0], [-1.0], [-2.0], [-3.0]], dtype=np.float32) # Definir un model simple model = tf.keras.Sequential([ tf.keras.layers.Dense(units=1, input_shape=[1]) ]) # Compilar el model model.compile(optimizer='sgd', loss='mean_squared_error') # Entrenar el model model.fit(x, y, epochs=500, verbose=0) # Predir amb el model entrenat print(model.predict([10.0]))
Explicació del codi:
- Importació de biblioteques: Importem TensorFlow i NumPy.
- Activació de l'execució immediata: Activem l'execució immediata amb
tf.config.run_functions_eagerly(True)
. - Generació de dades sintètiques: Creem arrays NumPy per a les dades d'entrada
x
i les etiquetesy
. - Definició del model: Definim un model seqüencial amb una capa densa.
- Compilació del model: Compilem el model amb l'optimitzador 'sgd' i la funció de pèrdua 'mean_squared_error'.
- Entrenament del model: Entrenem el model amb les dades sintètiques durant 500 èpoques.
- Predicció: Utilitzem el model entrenat per fer una predicció amb una nova entrada.
Exercicis Pràctics
Exercici 1: Operacions amb tensors
Crea dos tensors constants x
i y
amb valors de la teva elecció i realitza les següents operacions:
- Suma
- Resta
- Divisió
Solució:
import tensorflow as tf # Activar l'execució immediata tf.config.run_functions_eagerly(True) # Crear tensors x = tf.constant([10, 20, 30]) y = tf.constant([2, 4, 6]) # Operacions amb tensors sum_result = x + y sub_result = x - y div_result = x / y print("x + y =", sum_result.numpy()) print("x - y =", sub_result.numpy()) print("x / y =", div_result.numpy())
Exercici 2: Entrenament d'un model amb dades sintètiques
Genera dades sintètiques per a un problema de regressió lineal i entrena un model simple de TensorFlow per ajustar aquestes dades.
Solució:
import tensorflow as tf import numpy as np # Activar l'execució immediata tf.config.run_functions_eagerly(True) # Generar dades sintètiques x = np.array([[1.0], [2.0], [3.0], [4.0]], dtype=np.float32) y = np.array([[2.0], [4.0], [6.0], [8.0]], dtype=np.float32) # Definir un model simple model = tf.keras.Sequential([ tf.keras.layers.Dense(units=1, input_shape=[1]) ]) # Compilar el model model.compile(optimizer='sgd', loss='mean_squared_error') # Entrenar el model model.fit(x, y, epochs=500, verbose=0) # Predir amb el model entrenat print(model.predict([5.0]))
Conclusió
L'execució immediata de TensorFlow facilita la programació i depuració de models, especialment per a aquells que estan començant. Permet una integració més fluida amb Python i fa que el codi sigui més intuïtiu. Amb els exemples i exercicis proporcionats, hauríeu de tenir una bona comprensió de com utilitzar l'execució immediata en els vostres projectes de TensorFlow.
Curs de TensorFlow
Mòdul 1: Introducció a TensorFlow
- Què és TensorFlow?
- Configuració de TensorFlow
- Conceptes bàsics de TensorFlow
- Hola món amb TensorFlow
Mòdul 2: Conceptes bàsics de TensorFlow
Mòdul 3: Gestió de dades a TensorFlow
Mòdul 4: Construcció de xarxes neuronals
- Introducció a les xarxes neuronals
- Creació d'una xarxa neuronal simple
- Funcions d'activació
- Funcions de pèrdua i optimitzadors
Mòdul 5: Xarxes neuronals convolucionals (CNNs)
Mòdul 6: Xarxes neuronals recurrents (RNNs)
- Introducció a les RNNs
- Construcció d'una RNN
- Memòria a llarg termini (LSTM)
- Unitats recurrents amb porta (GRUs)
Mòdul 7: Tècniques avançades de TensorFlow
- Capes i models personalitzats
- TensorFlow Hub
- Aprenentatge per transferència
- Ajust de hiperparàmetres