Я бы согласился в своем ответе с @Matt.
Единственное, что вы можете сделать, это сохранить все параметры нормализации (X_min, X_max, mini, maxi) и отменить все математические операции, например:
def normalizer(X, mini, maxi):
X_min = X.min(axis=0)
X_max = X.max(axis=0)
X_std = (X - X_min) / (X_max - X_min)
X_scaled = X_std * (maxi - mini) + mini
return X_scaled, {'x_min': X_min,
'x_max': X_max,
'min': mini,
'max': maxi}
def denormalizer(X_scaled, params):
X_min = params['x_min']
X_max = params['x_max']
mini = params['min']
maxi = params['max']
X_std = (X_scaled - mini) / (maxi - mini)
X = X_std * (X_max - X_min) + X_min
return X
a = np.arange(500).reshape(100,5)
a_scaled, params = normalizer(a, -1, 1)
a_restored = denormalizer(a_scaled, params)
print(a - a_restored)