我在 Keras 中使用具有 3 个输入和 1 个输出的神经网络。我正在使用 sklearn 中的 MinMaxScaler 将我的输入标准化为 [0,1]
我的输入形状是 (XX,3) 我的输出形状是 (XX,1)
缩放输入和输出数组时我没有任何输入
self.scaler = MinMaxScaler(feature_range=(0,1))
dataX = self.scaler.fit_transform(dataX)
dataY = self.scaler.fit_transform(dataY)
self.model.fit(dataX,dataY,nb_epoch=1000)
训练后我可以做出这样的预测:
data = numpy.array([[ val1,val2,val3]])
data = self.scaler.fit_transform(data)
prediction = self.model.predict(data)
但是我的输出没有正确缩放,这是有道理的,因为我没有调用逆变换来应用逆缩放
但是当我调用它时,我得到一个 ValueError ,我尝试将转换应用于单个预测或预测数组,但问题是一样的
self.scaler.inverse_transform(predictions) # prediction shape is (18,) :
ValueError: 操作数不能与形状 (18,) (3,) (18,) 一起广播
ValueError:形状 (18,1) 的不可广播输出操作数与广播形状 (18,3) 不匹配
我不明白这是一个形状问题,但错误消息并没有太大帮助
(12,1) 被 fit_transform (18,1) 接受似乎非常相似.. 所以我没有得到错误。