我正在尝试计算火炬张量数组的平均值和标准差。我的数据集有 720 张训练图像,每张图像都有 4 个地标,其中 X 和 Y 代表图像上的 2D 点。
to_tensor = transforms.ToTensor()
landmarks_arr = []
for i in range(len(train_dataset)):
landmarks_arr.append(to_tensor(train_dataset[i]['landmarks']))
mean = torch.mean(torch.stack(landmarks_arr, dim=0))#, dim=(0, 2, 3))
std = torch.std(torch.stack(landmarks_arr, dim=0)) #, dim=(0, 2, 3))
print(mean.shape)
print("mean is {} and std is {}".format(mean, std))
结果:
torch.Size([])
mean is nan and std is nan
上面有几个问题:
为什么 to_tensor 不转换 0 和 1 之间的值?
如何正确计算平均值?
我应该除以 255 吗?
我有:
len(landmarks_arr)
720
和
landmarks_arr[0].shape
torch.Size([1, 4, 2])
和
landmarks_arr[0]
tensor([[[502.2869, 240.4949],
[688.0000, 293.0000],
[346.0000, 317.0000],
[560.8283, 322.6830]]], dtype=torch.float64)
aluckdog
相关分类