En aquest tema, aprendrem com crear capes i models personalitzats a TensorFlow. Això és especialment útil quan les capes predefinides no s'ajusten exactament a les necessitats del nostre projecte. A més, la creació de models personalitzats ens permet tenir un control més gran sobre l'arquitectura i el comportament del nostre model.
Objectius del tema
- Entendre la necessitat de capes i models personalitzats.
- Aprendre a crear capes personalitzades.
- Aprendre a crear models personalitzats.
- Implementar un exemple pràctic de capa i model personalitzat.
- Necessitat de capes i models personalitzats
Per què capes personalitzades?
- Flexibilitat: Permet implementar operacions específiques que no estan disponibles en les capes predefinides.
- Optimització: Pot ajudar a optimitzar el rendiment del model per a tasques específiques.
- Innovació: Facilita la investigació i desenvolupament de noves arquitectures de xarxes neuronals.
Per què models personalitzats?
- Control: Proporciona un control complet sobre l'arquitectura del model.
- Modularitat: Permet crear models complexos a partir de components més senzills.
- Reutilització: Facilita la reutilització de components en diferents projectes.
- Creació de capes personalitzades
Exemple bàsic de capa personalitzada
import tensorflow as tf class MyCustomLayer(tf.keras.layers.Layer): def __init__(self, units=32, **kwargs): super(MyCustomLayer, self).__init__(**kwargs) self.units = units def build(self, input_shape): self.w = self.add_weight(shape=(input_shape[-1], self.units), initializer='random_normal', trainable=True) self.b = self.add_weight(shape=(self.units,), initializer='zeros', trainable=True) def call(self, inputs): return tf.matmul(inputs, self.w) + self.b
Explicació del codi
__init__
: Inicialitza la capa amb el nombre d'unitats especificades.build
: Crea els pesos de la capa (w
ib
). Aquesta funció es crida una vegada quan es coneix la forma de les dades d'entrada.call
: Defineix la lògica de la capa. En aquest cas, simplement aplica una operació de matriu (matmul
) i afegeix un biaix (b
).
- Creació de models personalitzats
Exemple bàsic de model personalitzat
class MyCustomModel(tf.keras.Model): def __init__(self): super(MyCustomModel, self).__init__() self.dense1 = tf.keras.layers.Dense(64, activation='relu') self.custom_layer = MyCustomLayer(32) self.dense2 = tf.keras.layers.Dense(10) def call(self, inputs): x = self.dense1(inputs) x = self.custom_layer(x) return self.dense2(x)
Explicació del codi
__init__
: Inicialitza les capes del model, incloent-hi la capa personalitzada.call
: Defineix la lògica del model, especificant com les dades passen a través de les capes.
- Exemple pràctic
Construcció d'un model amb una capa personalitzada
import numpy as np # Generar dades de mostra x_train = np.random.random((1000, 32)) y_train = np.random.random((1000, 10)) # Crear el model model = MyCustomModel() # Compilar el model model.compile(optimizer='adam', loss='mse') # Entrenar el model model.fit(x_train, y_train, epochs=10)
Explicació del codi
- Generació de dades: Es generen dades de mostra aleatòries per entrenar el model.
- Creació del model: Es crea una instància del model personalitzat.
- Compilació del model: Es compila el model especificant l'optimitzador i la funció de pèrdua.
- Entrenament del model: Es realitza l'entrenament del model amb les dades de mostra.
Resum
En aquest tema, hem après a crear capes i models personalitzats a TensorFlow. Hem vist com les capes personalitzades ens permeten implementar operacions específiques i com els models personalitzats ens proporcionen un control complet sobre l'arquitectura del model. Finalment, hem implementat un exemple pràctic per consolidar els conceptes apresos.
En el següent tema, explorarem TensorFlow Hub i com podem utilitzar models preentrenats per millorar els nostres projectes.
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