归一化常见有三种方式:

(1)线性归一化
将数据归一化到一个范围 最大值y,和最小值x,即 [x,y] ,一般是 [0,1].

y=(x-min)/(max-min)

推导过程可以用一元方程y=ax+b进行推导:

0 = min *a+b

1=max*a+b

===>a=1/(max-min) ; b = -min/(max - min)

===>y=(x-min)/(max-min)

pytorch中transforms中ToTensor就是将数据转成tensor后进行 [0,1] 的标准化处理 (证明在结尾)

源文件解释:transforms.ToTensor是将numpy的ndarray或PIL.Image读的图片转换成形状为(C,H, W)的Tensor格式,且/255归一化到[0,1.0]之间

(2)Sigmod归一化
f(x) = 1 / (1 + exp(-ax+b))

这种归一化方式,当我们对数据分布的中间地带需要着重分析,而对两端数据并不是很敏感时,可以使用,具体的 a 和 b 根据问题去调整,其中 a 影响的是上图中蓝色曲线的陡峭程度,b 影响的是曲线的平移。

(3)z-score标准化
这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:

x*=(x-u)/σ

PS:
在这里插入图片描述

进入load_datafashion_fashion_mnist中

在这里插入图片描述

进入ToTensor中:

在这里插入图片描述

在进入F.to_tensor

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐