En aquest tema, aprendrem com treballar amb datasets a TensorFlow. Els datasets són una part fonamental de qualsevol projecte de machine learning, ja que proporcionen les dades necessàries per entrenar i avaluar els models. TensorFlow ofereix una API poderosa i flexible per gestionar datasets de manera eficient.
Objectius
- Entendre com crear i manipular datasets amb TensorFlow.
- Aprendre a utilitzar l'API
tf.data
per construir pipelines de dades. - Veure exemples pràctics de com carregar i processar datasets.
Continguts
- Creació de datasets amb
tf.data.Dataset
- Transformacions de datasets
- Iteració sobre datasets
- Exemples pràctics
- Creació de datasets amb
tf.data.Dataset
tf.data.Dataset
Creació a partir de llistes
Una de les maneres més senzilles de crear un dataset és a partir de llistes de Python.
import tensorflow as tf # Llistes de dades features = [1, 2, 3, 4, 5] labels = [0, 0, 1, 1, 1] # Creació del dataset dataset = tf.data.Dataset.from_tensor_slices((features, labels)) # Mostrem els elements del dataset for element in dataset: print(element)
Creació a partir d'arxius
També podem crear datasets a partir d'arxius, com ara arxius CSV.
import tensorflow as tf # Funció per carregar i processar les dades def parse_csv(line): example_defaults = [[0.0], [0.0], [0.0], [0.0], [0]] # Tipus de les columnes parsed_line = tf.io.decode_csv(line, example_defaults) features = tf.stack(parsed_line[:-1]) label = parsed_line[-1] return features, label # Creació del dataset a partir d'un arxiu CSV dataset = tf.data.TextLineDataset("path/to/your/file.csv") dataset = dataset.map(parse_csv) # Mostrem els elements del dataset for element in dataset: print(element)
- Transformacions de datasets
Map
La transformació map
aplica una funció a cada element del dataset.
def normalize(features, label): features = features / 255.0 return features, label dataset = dataset.map(normalize)
Batch
La transformació batch
agrupa els elements del dataset en lots.
Shuffle
La transformació shuffle
barreja els elements del dataset.
- Iteració sobre datasets
Podem iterar sobre els elements del dataset utilitzant un bucle for
.
- Exemples pràctics
Exemple 1: Carregar i processar el dataset MNIST
import tensorflow as tf # Carreguem el dataset MNIST (train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data() # Creem el dataset train_dataset = tf.data.Dataset.from_tensor_slices((train_images, train_labels)) # Normalitzem les imatges def normalize(image, label): image = tf.cast(image, tf.float32) / 255.0 return image, label train_dataset = train_dataset.map(normalize) # Barregem i agrupem en lots train_dataset = train_dataset.shuffle(60000).batch(32) # Iterem sobre el dataset for images, labels in train_dataset: print(images.shape, labels.shape) break
Exemple 2: Carregar un dataset des d'un arxiu CSV
import tensorflow as tf # Funció per carregar i processar les dades def parse_csv(line): example_defaults = [[0.0], [0.0], [0.0], [0.0], [0]] # Tipus de les columnes parsed_line = tf.io.decode_csv(line, example_defaults) features = tf.stack(parsed_line[:-1]) label = parsed_line[-1] return features, label # Creació del dataset a partir d'un arxiu CSV dataset = tf.data.TextLineDataset("path/to/your/file.csv") dataset = dataset.map(parse_csv) # Barregem i agrupem en lots dataset = dataset.shuffle(1000).batch(32) # Iterem sobre el dataset for batch in dataset: features, labels = batch print(features, labels) break
Resum
En aquesta secció, hem après com treballar amb datasets a TensorFlow utilitzant l'API tf.data
. Hem vist com crear datasets a partir de llistes i arxius, com aplicar transformacions com map
, batch
i shuffle
, i com iterar sobre els elements del dataset. A més, hem explorat exemples pràctics per carregar i processar datasets reals. Amb aquests coneixements, estem preparats per gestionar dades de manera eficient en els nostres projectes de machine learning.
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