当前位置:   article > 正文

基础学习——python 归一化、反归一化、标准化、反标准化、python输出数据显示不完全怎么解决_python 反归一化

python 反归一化

python 归一化、反归一化、标准化、反标准化、python输出数据显示不完全怎么解决



前言


# 我这里用的数据类型为tensor
# 如果你是numpy ,可以把程序里所有的torch改为np
import torch 
import numpy as np
import cv2 
# 如果想要数据显示完整可以加上这两行
# np.set_printoptions(threshold=np.inf)
# torch.set_printoptions(profile="full")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

1、最大值归一化、反归一化

#------------------------------#
# 最大值归一化
def preprocess_input(image):
    image /= 255.0
    return image
# 最大值反归一化
def unpreprocess_input(image):
    image *= 255.0
    return image
#-----------------------------#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2、线性函数归一化、反归一化

我真的是不知道该怎么称呼这个函数,有的说是线性函数归一化,有的称其为[0,1]标准化。

#-----------------------------------------#
# 线性函数归一化、[0,1]标准化
# 将特征缩放到给定的最小值和最大值之间
# 无法消除量纲对方差、协方差的影响
# 图片: min:0、 max:255
def MaxMinNormalization(data,min,max):
    data = (data - min) / (max - min)
    return data

# 线性函数反归一化
# data:需要归一化的数据
# gen_data:归一化之前的根数据用来确定最大值和最小值
def UnMaxMinNormalization(data,min,max):  
    return data*(max-min) + min

#-----------------------------------------#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

3、均值方差标准化、反标准化

#-----------------------------------------#
# 均值方差标准化
# 使用距离来度量相似性
# 避免了不同量纲的选取对距离计算产生的巨大影响
def ZscoreNormalization(data, mean, std):
    data= (data - mean) / std
    return data
# 均值方差反标准化
def UnscoreNormalization(data, mean, std):
    data= data* std + mean
    return data
#----------------------------------------#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4、torchvision框架 transform

# torchvision框架 transform
transform = transforms.Compose(
    [transforms.ToTensor(),  # 函数接受PIL Image或numpy.ndarray,将其先由HWC转置为CHW格式,再转为float后每个像素除以255.
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
  • 1
  • 2
  • 3
  • 4

sklearn来操作可以参考http://t.csdn.cn/Wilrn

5、python输出数据显示不完全怎么解决

我这里用 jupyter notebook 和pycharm 环境运行都是可以的。

numpy数据加这一行

np.set_printoptions(threshold=np.inf)
  • 1

tensor数据加这一行

torch.set_printoptions(profile="full")
  • 1

6、总程序

# 我这里用的数据类型为tensor
# 如果你是numpy ,可以把程序里所有的torch改为np
import torch 
import numpy as np
import cv2 
# np.set_printoptions(threshold=np.inf)
# torch.set_printoptions(profile="full")
#------------------------------#
# 最大值归一化
def preprocess_input(image):
    image /= 255.0
    return image
# 最大值反归一化
def unpreprocess_input(image):
    image *= 255.0
    return image
#-----------------------------#

#-----------------------------------------#
# 线性函数归一化、[0,1]标准化
# 将特征缩放到给定的最小值和最大值之间
# 无法消除量纲对方差、协方差的影响
# 图片: min:0、 max:255
def MaxMinNormalization(data,min,max):
    data = (data - min) / (max - min)
    return data

# 线性函数反归一化
# data:需要归一化的数据
# gen_data:归一化之前的根数据用来确定最大值和最小值
def UnMaxMinNormalization(data,min,max):  
    return data*(max-min) + min

#-----------------------------------------#
# 均值方差标准化
# 使用距离来度量相似性
# 避免了不同量纲的选取对距离计算产生的巨大影响
def ZscoreNormalization(x, mean_, std_):
    x = (x - mean_) / std_
    return x
# 均值方差反标准化
def UnscoreNormalization(x, mean, std):
    x = x * std + mean
    return x
#----------------------------------------#
image = cv2.imread("D:/code/data/319.jpg")  # 读图片
image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)  # 转灰度图
image = torch.tensor(image).float()   # numpy 转tensor   int8 转 float()
#------------------------------------------------------#
#最大值归一化
image1 = preprocess_input(image)     
# 最大值反归一化
image2 = unpreprocess_input(image1)   
#------------------------------------------------------#

#------------------------------------------------------#
# 线性函数归一化
image3 = MaxMinNormalization(image,torch.amin(image),torch.amax(image))
# 线性函数反归一化
image4 = UnMaxMinNormalization(image3,torch.amin(image),torch.amax(image))
# image,image3,image4
#------------------------------------------------------#
# 均值方差标准化
image5 = ZscoreNormalization(image3,torch.mean(image3,axis=0),torch.std(image3,axis=0))    
# 均值方差反标准化
image6 = UnscoreNormalization(image5,torch.mean(image3,axis=0),torch.std(image3,axis=0))    
# image3,image5,image6
#------------------------------------------------------#

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

总结

未完待续,,,,

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/90006
推荐阅读
相关标签
  

闽ICP备14008679号