如何在pytorch中为transforms.Compose在-1和1之间标准化PIL图像?

Rag*_*uel 2 python pytorch tensor

所以我一直试图找到一种方法来规范化 -1 和 1 之间的一些 PIL 图像像素值。我搜索了文档并没有找到解决方案。只有文档transforms.Normalize中的归一化是用均值和标准值归一化的。所以我被困在如何做到这一点上。这是我的代码:

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

如何标准化两个数字之间的张量?例如:

[[1,2,3]
[3,2,1]]
Run Code Online (Sandbox Code Playgroud)

-1 和 1 之间

[[-1, 0, 1],
[1, 0, -1]]
Run Code Online (Sandbox Code Playgroud)

Ioa*_*ios 6

尝试:

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))])
Run Code Online (Sandbox Code Playgroud)
  • ToTensor 将图像像素从 [0,255] 缩放到 [0,1] 值

  • 归一化将首先减去平均值,因此 [0,1] 值将转换为范围 [-0.5,0.5],然后将除以std并且 [-0.5,0.5] 将达到 [-1,1] 范围