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],
)

Sources