Hi,
The most likely reason is that the cpu has nothing to do as the dataset is already in memory and so it only needs to start work on the GPU.
The GPU has very little to do as well as the network is small and the batch size is small as well.
Increasing the batch size should increase the gpu usage.
GPUs are built to do big tasks, not a lot of small ones. So if you have a lot of small tasks, you won’t be able to use a GPU efficiently.