gpt4 book ai didi

python - 向量的 torch.mean(data, 0) 和 torch.mean(data) 的不同行为

转载 作者:行者123 更新时间:2023-12-01 01:47:43 24 4
gpt4 key购买 nike

我很惊讶地发现 torch.mean(data, 0) 和 torch.mean(data) 的不同行为,其中“data” - 是一维张量(向量,不是矩阵或其他东西):

from torchvision import datasets
import torch

path = './MNIST_data'

data = datasets.MNIST(path, train=True, download=True).train_data.view(-1).float()

print(torch.mean(data))
print(torch.mean(data, 0))

执行后结果:

tensor(33.3184)
tensor(33.4961)

有人能猜出发生了什么事吗?我认为结果应该是相同的。

最佳答案

一个例子应该可以帮助您消除疑问。

假设我们有data = torch.Tensor([[1,2,3,4],[1,2,3,4]])

现在,当您执行 torch.mean(data) 时,它将对数据张量中的所有元素求和,然后除以该张量中的元素数量,给出结果 2.5

至于你的操作 torch.mean(data, 0) 这将沿水平方向执行平均值,这意味着它将取第一行的第一个元素为 1 并取第一个第 2 行的元素为 2,将它们相加并除以 2。这样有助于可视化数据数组

[1, 2, 3, 4]
[1, 2, 3, 4]

最终结果将是[1, 2, 3, 4]的张量,如果您知道我们最终如何得到这个张量,您就已经理解了其中的区别。

希望能够解决这个问题,如果您有疑问,请告诉我

关于python - 向量的 torch.mean(data, 0) 和 torch.mean(data) 的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com