Introducció
En aquest tema, aprendrem sobre els tensors, que són les estructures de dades fonamentals en TensorFlow, i les operacions que es poden realitzar amb ells. Els tensors són similars als arrays de Numpy, però amb capacitats addicionals per a la computació distribuïda i l'optimització automàtica.
Què és un tensor?
Un tensor és una estructura de dades que representa una matriu multidimensional. Els tensors poden tenir diverses dimensions, des d'un escalar (0D) fins a matrius de dimensions superiors (nD).
Tipus de tensors
- Escalar (0D): Un sol valor.
- Vector (1D): Una llista de valors.
- Matriu (2D): Una taula de valors.
- Tensor de dimensions superiors (nD): Una matriu de matrius.
Exemples de tensors
import tensorflow as tf
# Escalar
escalar = tf.constant(3)
print(escalar)
# Vector
vector = tf.constant([1, 2, 3])
print(vector)
# Matriu
matriu = tf.constant([[1, 2], [3, 4]])
print(matriu)
# Tensor de dimensions superiors
tensor_nd = tf.constant([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(tensor_nd)Operacions amb tensors
TensorFlow proporciona una àmplia gamma d'operacions que es poden realitzar amb tensors. Algunes de les operacions més comunes inclouen:
- Operacions aritmètiques: suma, resta, multiplicació, divisió.
- Operacions lògiques: AND, OR, NOT.
- Operacions de reducció: suma, mitjana, màxim, mínim.
- Operacions de manipulació: reshape, transpose, slice.
Exemples d'operacions
Operacions aritmètiques
a = tf.constant([1, 2, 3])
b = tf.constant([4, 5, 6])
# Suma
suma = tf.add(a, b)
print(suma)
# Resta
resta = tf.subtract(a, b)
print(resta)
# Multiplicació
multiplicacio = tf.multiply(a, b)
print(multiplicacio)
# Divisió
divisio = tf.divide(a, b)
print(divisio)Operacions de reducció
c = tf.constant([[1, 2, 3], [4, 5, 6]])
# Suma de tots els elements
suma_total = tf.reduce_sum(c)
print(suma_total)
# Mitjana de tots els elements
mitjana = tf.reduce_mean(c)
print(mitjana)
# Màxim de tots els elements
maxim = tf.reduce_max(c)
print(maxim)
# Mínim de tots els elements
minim = tf.reduce_min(c)
print(minim)Operacions de manipulació
d = tf.constant([[1, 2, 3], [4, 5, 6]])
# Reshape
reshape = tf.reshape(d, [3, 2])
print(reshape)
# Transpose
transpose = tf.transpose(d)
print(transpose)
# Slice
slice = tf.slice(d, [0, 1], [2, 2])
print(slice)Exercicis pràctics
Exercici 1: Crear tensors
Crea els següents tensors utilitzant tf.constant:
- Un escalar amb el valor 10.
- Un vector amb els valors [10, 20, 30].
- Una matriu amb els valors [[1, 2], [3, 4], [5, 6]].
Solució
# Escalar
escalar = tf.constant(10)
print(escalar)
# Vector
vector = tf.constant([10, 20, 30])
print(vector)
# Matriu
matriu = tf.constant([[1, 2], [3, 4], [5, 6]])
print(matriu)Exercici 2: Operacions amb tensors
Realitza les següents operacions amb tensors:
- Suma dels vectors [1, 2, 3] i [4, 5, 6].
- Multiplicació de les matrius [[1, 2], [3, 4]] i [[5, 6], [7, 8]].
- Transposició de la matriu [[1, 2, 3], [4, 5, 6]].
Solució
# Suma de vectors
a = tf.constant([1, 2, 3])
b = tf.constant([4, 5, 6])
suma = tf.add(a, b)
print(suma)
# Multiplicació de matrius
c = tf.constant([[1, 2], [3, 4]])
d = tf.constant([[5, 6], [7, 8]])
multiplicacio = tf.matmul(c, d)
print(multiplicacio)
# Transposició de matriu
e = tf.constant([[1, 2, 3], [4, 5, 6]])
transpose = tf.transpose(e)
print(transpose)Conclusió
En aquest tema, hem après què són els tensors i com crear-los a TensorFlow. També hem explorat diverses operacions que es poden realitzar amb tensors, incloent operacions aritmètiques, de reducció i de manipulació. Aquests conceptes són fonamentals per treballar amb TensorFlow i seran la base per a temes més avançats en els següents mòduls.
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
