Vue d'ensemble
TensorFlow 2.10, publié le 7 septembre 2022, améliore le noyau Keras et introduit le bucketing pour un entraînement plus efficace.
Fonctionnalités principales
Keras core amélioré
Le noyau Keras bénéficie de refactorisations internes pour de meilleures performances et une API plus cohérente entre les backends.
python
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(256, activation='relu'),
tf.keras.layers.Dropout(0.3),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax'),
])
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'],
)
Bucketing
Le bucketing regroupe les exemples de taille similaire dans les mêmes batches, réduisant le padding et accélérant l'entraînement sur les séquences.
python
import tensorflow as tf
# Bucketing pour séquences de longueur variable
dataset = tf.data.Dataset.from_generator(
lambda: ({'text': tf.random.uniform([l], maxval=100, dtype=tf.int32)}
for l in range(5, 50)),
output_signature={'text': tf.TensorSpec([None], tf.int32)},
)
# Regrouper par taille similaire
bucketed = dataset.bucket_by_sequence_length(
lambda x: tf.shape(x['text'])[0],
bucket_boundaries=[10, 20, 30],
bucket_batch_sizes=[8, 4, 2, 1],
)
