The mean is calculated in dim0, not the first element.
Here is a code snippet to show, how this operation works:
batch_size = 2
nb_classes = 3

# initialize empty list
output_list = []

# append predictions to list
for _ in range(10):
    # Here you would call the model and create the outputs
    output_list.append(torch.randn(batch_size, nb_classes))

# Concatenate in dim0 and create tensor
output_list = torch.cat(output_list, 0)
print(output_list.shape) # [20, 3] = [batch_size * 10, nb_classes]

# Calculate mean in dim0 (over all samples)
output_mean = output_list.mean(0)
print(output_mean.shape) # [3]