Overview
TensorFlow 2.10, released on September 7, 2022, improves the Keras core and introduces bucketing for more efficient training.
Main Features
Improved Keras core
The Keras core benefits from internal refactoring for better performance and a more consistent API across 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
Bucketing groups examples of similar size into the same batches, reducing padding and speeding up training on sequences.
python
import tensorflow as tf
# Bucketing for variable-length sequences
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)},
)
# Group by similar size
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],
)
