【发布时间】:2020-01-16 17:09:47
【问题描述】:
我想对我的神经网络的标签进行归一化,但也能够反转归一化过程,以便我可以将我的预测输出缩放回原始大小。
我的标签是这样的:
[[ 2.25, 2345123.23],
[ 1.13, 234565.11],
...
[0.12, 990232.98]]
现在我想对每一列进行规范化,使值范围从 0 到 1。
我发现 pytorch 具有 torch.nn.functional.normalize 函数,它允许我使用我想要的任何 p 范数沿特定维度进行标准化。
是否存在允许我缩放标准化值的现有反函数?
目前,我正在使用一个自定义函数来执行如下特征缩放,它将两列一起缩放,但是,我想确保在重写之前我没有创建一个已经存在于 torch 库中的函数。
A = lbl_min
B = lbl_max
a = lower_bound
b = upper_bound
self.labels = a*np.ones(shape) + (self.labels - A*np.ones(shape))*(b-a)/(B-A)
附加信息: 我正在使用回归模型来输出连续的现实世界值。我需要“非规范化”我的预测,以便根据真实值验证它们。此外,如果我要在实际应用中使用我的模型,我需要将我的输出恢复为原始单位。
- 我的神经网络一次预测多个值,这些值在非常不同的范围内。
- 这两个值具有不同的分布,但可以根据相同的输入进行预测。
- 我的输入是输入到两个 CNN 层中的图像,然后将其输入到两个完全连接的层中
【问题讨论】:
-
显然,没有基于框架的解决方案。看这里:discuss.pytorch.org/t/…
标签: python regression pytorch normalization