代码可以在这里找到:https://github.com/gaurav67890/Pytorch_Tutorials/blob/master/cnn-scratch-training.ipynb
密码是64号牢房
#Transforms
transformer=transforms.Compose([
transforms.Resize((150,150)),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(), #0-255 to 0-1, numpy to tensors
transforms.Normalize([0.5,0.5,0.5], # 0-1 to [-1,1] , formula (x-mean)/std
[0.5,0.5,0.5])
])
为什么我们需要对图像Tensor进行归一化?为什么我们要传递参数[0.5,0.5,0.5],[0.5,0.5,0.5]?
1条答案
按热度按时间mi7gmzs61#
规范化做了两件事。它限制了数据范围并降低了偏斜度。这通常会改善ML算法的学习。在这个例子中,数据范围不一定需要,因为范围已经是
所以你的第一个问题的答案是。我们归一化,使数据更平滑,并将其带入[-1,1]范围。
参数[0.5,0.5,0.5],[0.5,0.5,0.5]分别是三个通道中每个通道的平均值和标准差。您也可以根据输入图像计算它们,但似乎这一步被简化了。