Right, if you are using DataParallel or DistributedDataParallel the input will automatically be split across the batch dimension for the different devices (in this case the 4 GPUs) so that is why there are 4 calls each with 1/4 the total original batch size. This is expected behavior and the output you get should be coalesced to the full batch size.
Is this causing an error for you somewhere else?