首页 > 编程知识 正文

为什么要进行归一化处理,评估中如何进行指标归一化处理

时间:2023-05-04 14:32:47 阅读:25940 作者:3922

首先,使用深度学习框架构建训练数据时,通常需要“数据规范化”(Normalize )以方便网络训练。 训练过程的可视化通常需要逆正规化。 PyTorch框架提供了torch vision.transforms.normalize (mean,std,inplace=False )方法用于规范化。

正规化的本质是根据平均值和标准偏差调整数据的分布。

# torch vision.transforms.normalize (mean,std,inplace=False ) output[channel]=) input [ channel ]-chanen

(1)正常归一化是将经过(-1,1 )方法的数据缩放到[-1,1 ]之间,其中,[ 0,255 ]可以将范围转换为[ 0,1 ]之间。

transforms.normalize (0.5、0.5、0.5 )、0.5、0.5、0.5 ) )2) ImageNet预规范化transforms.normalize ) ) 0.485, 0.456 0.225 ) )该平均值和标准偏差基于ImageNet数据集的统计,用于创建与ImageNet数据集的数据分布类似的数据集分布(从人、风景、交通工具等生活的真实场景创建的数据集) 如果创建的数据集不是生物医学图像那样的生活真实场景,则不建议使用此参数。

(3)对于计算数据集的平均值和标准偏差的特定数据集,可通过统计计算训练集来直接计算平均值和标准偏差。

逆正规化相对于通常的正规化方法的逆正规化:

defdenorm(x ) :out=) x1 )/2returnout.clamp_ ) 0,1 ) ImageNet预规范化方法的逆规范化:

classunnormalize(object ) :def_init_ ) self,mean, std ) : self.mean=mean self.STD=stddef _ _ ctd tensor ) :''Args:tensor(tensor ) : Tensor image of size (C w ) tobe normalized.returns : tensor : normalized image.' ' fort,m,sinzip(tensor,self.mean,self.STD (333666 )

参考资料[1] image processing[数据规范化]平均值和方差设置

[2] torch vision.transforms.normalize (mean,std,inplace=False ) )。

[3] howtogetthesedata (means=[ 0.485,0.456,0.406 ] STDs=[ 0.229,0.224,0.225 ] in your code? #6

[4] whypytorchofficiallyusemean=[ 0.485,0.456,0.406 ] and STD=[ 0.229,0.224,0.225 ] tonormalizeimages?

[5]简单way to inverse transform? 正常化

[6] PyTorch函数的torch vision.transforms.to tensor (和Normalize ) )。

[7] pytorch归一化和逆归一化

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。