【发布时间】:2020-03-15 01:42:34
【问题描述】:
我正在使用 TensorFlow/Keras 来训练 CNN。我已经使用 0 到 1 之间的 MinMaxScaler 对我的输入 (X) 和输出 (Y) 数据进行了标准化(我的问题中有 2 个输入和 3 个输出),例如:
from sklearn.preprocessing import MinMaxScaler # For normalizing data
scaler = MinMaxScaler() # Define limits for normalize data
X = scaler.fit_transform(X) # Normalize input data
Y = scaler.fit_transform(Y) # Normalize output data
问题是,在训练期间,在每个时期,我都会得到一个标准化的损失值。反正我可以得到原始的损失值吗?
我知道有以下逆变换:
X = scaler.inverse_transform(X) # Inverse transformation of input data
Y = scaler.inverse_transform(Y) # Inverse transformation of output data
但我不确定如何在模型中执行这种非规范化。
【问题讨论】:
-
为什么要“原始”损失值?使用自定义损失函数和/或 lambda 层应该是可能的,但我觉得这不值得对您的代码产生影响。
-
这是一个回归问题,使用非规范化数据更容易解释我在每个时期结束时得到的结果。
标签: keras normalization denormalization