Since you are not using the running estimates via track_running_stats=False, the batchnorm layer has to calculate the batch statistics even in eval() mode.
From the docs:

track_running_stats: a boolean value that when set to True, this
module tracks the running mean and variance, and when set to False,
this module does not track such statistics and always uses batch
statistics in both training and eval modes. Default: True

If you are using this mode, you would need to provide more than a single input value.