在训练期间恢复非规范化数据

时间:2019-11-19 13:56:41

标签: keras normalization denormalization

我正在使用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

但是我不确定如何在模型中执行这种非规范化。

1 个答案:

答案 0 :(得分:0)

作为一般经验法则,您不应尝试更改损失函数以使其更具可解释性。对于您的情况,我建议您制作一个custom metric。在您创建的自定义指标函数中,您可以对y_true和y_pred进行逆变换,然后计算想要对它们进行的任何运算(例如MAE)。

如果您想做一些不仅仅可以作为度量标准处理的事情,则可以始终创建一个on_epoch_end运行的custom lambda callback(或者您希望在其他任何时候)。