我正在使用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
但是我不确定如何在模型中执行这种非规范化。
答案 0 :(得分:0)
作为一般经验法则,您不应尝试更改损失函数以使其更具可解释性。对于您的情况,我建议您制作一个custom metric。在您创建的自定义指标函数中,您可以对y_true和y_pred进行逆变换,然后计算想要对它们进行的任何运算(例如MAE)。
如果您想做一些不仅仅可以作为度量标准处理的事情,则可以始终创建一个on_epoch_end
运行的custom lambda callback(或者您希望在其他任何时候)。