加载已训练回归模型后,新输入的预测值始终相同的问题求助
问题分析与解决
你的问题根本不是模型需要重置,而是输入缩放的代码写错了。
看这段代码:
new_input = inputScaler.fit_transform(new_input )
每次处理新输入都调用fit_transform,会让inputScaler重新基于当前这单个样本计算缩放的最小值和最大值——单样本的min和max都是它自己,所以缩放后的值永远是0(MinMaxScaler默认缩放到[0,1]区间)。不管你输入的原始数据有啥差异,经过这步处理后全变成一样的输入,模型自然输出相同结果。
修正方法
把fit_transform改成transform,直接用训练时已经拟合好的scaler规则处理新输入:
loaded_model = tf.keras.models.load_model("model") inputScaler = joblib.load(input_sc) outputScaler = joblib.load(output_sc) # 只做transform,不重新fit new_input = inputScaler.transform(new_input ) prediction = loaded_model.predict(new_input ) inversed_predictData = outputScaler.inverse_transform(prediction) sum_pred = np.sum(inversed_predictData, axis=1) print(sum_pred)
额外检查点
- 确认每次传入的
new_input确实是不同的(可以打印出来验证) - 确保加载的
inputScaler和outputScaler是训练时保存的那两个,没有被覆盖或错误替换
内容的提问来源于stack exchange,提问作者mzt1845
相关产品推荐
相关产品推荐

