赞
踩
# 我这里用的数据类型为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]标准化。
#-----------------------------------------#
# 线性函数归一化、[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(data, mean, std):
data= (data - mean) / std
return data
# 均值方差反标准化
def UnscoreNormalization(data, mean, std):
data= data* std + mean
return data
#----------------------------------------#
# 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))])
sklearn来操作可以参考http://t.csdn.cn/Wilrn
我这里用 jupyter notebook 和pycharm 环境运行都是可以的。
numpy数据加这一行
np.set_printoptions(threshold=np.inf)
tensor数据加这一行
torch.set_printoptions(profile="full")
# 我这里用的数据类型为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
#------------------------------------------------------#
未完待续,,,,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。