Thanks for your reply. But there should be no precision loss between torch.float32 and numpy.float32. And the result of
import numpy as np
import torch

X = np.load('x.npy')
plt.imshow(torch.FloatTensor(X).numpy().mean(0))
plt.show()

is as follows:

So I think there is no precision loss whether it is from torch.float32 to numpy.float32 or vice versa. I think the real problem is the difference between the algorithm of torch.mean() and numpy.mean().