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

  1. Escalar (0D): Un sol valor.
  2. Vector (1D): Una llista de valors.
  3. Matriu (2D): Una taula de valors.
  4. 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:

  1. Operacions aritmètiques: suma, resta, multiplicació, divisió.
  2. Operacions lògiques: AND, OR, NOT.
  3. Operacions de reducció: suma, mitjana, màxim, mínim.
  4. 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:

  1. Un escalar amb el valor 10.
  2. Un vector amb els valors [10, 20, 30].
  3. 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:

  1. Suma dels vectors [1, 2, 3] i [4, 5, 6].
  2. Multiplicació de les matrius [[1, 2], [3, 4]] i [[5, 6], [7, 8]].
  3. 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.

© Copyright 2024. Tots els drets reservats