Large dataset with ILSVRC2012 GPU is waiting

Hi,
i know that’s there is already a dataset for ILSVRC2012 but i want to start frm scratch.

So i downloaded ILSVRC2012 : 1281167 images in 1000 folder (classes)

Now I built my dataset (BATCH_SIZE =512):

list_name = glob.glob( DIR_BASE + "../train/*/*.JPEG")
dataset = tf.data.Dataset.from_tensor_slices(list_name)
train_dataset = (dataset
    .shuffle(len(list_name))
    .map(load_image_label, num_parallel_calls=tf.data.AUTOTUNE)
    .repeat()
    .batch(BATCH_SIZE)
    .prefetch(tf.data.AUTOTUNE)
    .cache(DIR_BASE+"/cache"))
test_dataset = train_dataset.take(1000) 

with map function

@tf.function
def load_image_label(path_file):
    raw = tf.io.read_file(path_file)
    image = tf.image.decode_jpeg(raw, channels=3)
    image = tf.cast(image, tf.float32) 
    image = tf.image.resize(image, [HEIGHT, WIDTH])
    image.set_shape((HEIGHT, WIDTH, 3))

    x =  tf.strings.substr(path_file, POS_CLASS,POS_CLASS+9)
    label = tf.one_hot(table_folder.lookup(x), NUM_CLASSES)
    label.set_shape((NUM_CLASSES))
    return (image / scaleFactor, label)

Now i train my model :

historique = model.fit(train_dataset,steps_per_epoch=(len(list_name)-1000) // BATCH_SIZE -1,
                           epochs=num_epochs+epoch_save,
                           initial_epoch = epoch_save,
                           validation_data=test_dataset,
                           callbacks=[tensorboard_callback, checkpoint_callback])

and GPU is at less than 10%
CPU processor is at 10%
and disk less than 70%
Can I Improve my code get gpu to 100%?

platform windows wsl2 tensorflow 2.15