我正在创建一个神经网络来对音乐进行降噪。
模型的输入是一个从0到1缩放的数组。这是使用sklearn MinMaxScaler实现的。数据的原始范围是-1到1。模型的输出也是一个从0到1缩放的数组。
但是,在预测信息时,我无法将数据缩放回-1到1。
我的代码类似于:
data = load(data_path)
scaler = MinMaxScaler(feature_range = (0,1))
data = data.reshape(-1,1)
data = scaler.fit_transform(data)
model = load_model(model_path)
predicted_data = model.predict(data)
predicted_data = scaler.inverse_transform(predicted_data)
但是我收到错误:
This MinMaxScaler instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
但是数据已经适合,我不想再次适合它。
为什么我会收到此错误? MinMaxScaler仍然不应该对不适合的数据进行inverse_transform吗?
关于此错误是否有任何建议?
答案 0 :(得分:2)
错误说明了一切,您需要分别调用fit
和transform
方法,而不仅仅是fit_transform
。
data = load(data_path)
data = data.reshape(-1, 1)
scaler = MinMaxScaler(feature_range = (0,1)).fit(data)
data = scaler.transform(data)
model = load_model(model_path)
predicted_data = model.predict(data)
predicted_data = scaler.inverse_transform(predicted_data)