如何在 transforms.Compose 的 pytorch 中将 PIL 图像归一化到 -1 和 1 之间?

How to normalize PIL image between -1 and 1 in pytorch for transforms.Compose?

所以我一直在尝试找到一种方法来将一些 PIL 图像像素值标准化在 -1 和 1 之间。我搜索了文档但没有找到解决方案。文档中只有规范化是 transforms.Normalize,它使用均值和标准差进行规范化。所以我坚持如何去做。这是我的代码:

train_transform = transforms.Compose([
        transforms.RandomHorizontalFlip(p=0.5),
        transforms.Resize(40),
        transforms.RandomCrop(32),
        # Normalize(-1, 1)  # Something like that
])

如何归一化两个数字之间的张量?例如:

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

在 -1 和 1 之间

[[-1, 0, 1],
[1, 0, -1]]

尝试:

transform = transforms.Compose([
    transforms.RandomHorizontalFlip(p=0.5)
    transforms.Resize(40),
    transforms.RandomCrop(32),
    transforms.ToTensor(),
    transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))])
  • ToTensor 会将图像像素从 [0,255] 缩放到 [0,1] 值

  • Normalize 将首先减去 mean 因此 [0,1] 值将转换为范围 [-0.5,0.5],然后除以 std 和 [-0.5,0.5] 将达到 [-1,1] 范围