You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow(keras)模型预测全部样本返回相同值问题求助

TensorFlow模型预测全部返回相同值问题排查方案

核心问题原因

  • 输入形状配置错误
    你在第一层全连接层设置的input_shape=x_train.shape是错误的,Dense层只需要接收特征维度作为输入形状,正确写法应为input_shape=(x_train.shape[1],)。你传入了包含样本数的完整维度,会导致模型结构匹配错误,无法正常学习特征规律。
  • 任务与损失函数、输出层不匹配
    你的需求是5分类任务(Valuable可选值为-2、-1、0、1、2),但当前代码用的是二分类的binary_crossentropy损失函数,输出层接sigmoid激活仅能输出0-1之间的二分类结果,完全不符合多分类任务要求,自然无法输出正确的多分类结果。
  • 输入特征未做标准化处理
    你的输入特征如Open、High等数值都在350左右的大区间,sigmoid激活函数在输入绝对值过大时会进入饱和区,梯度几乎为0,导致权重无法正常更新,最终所有神经元输出趋于一致,预测结果全部相同。
  • 激活函数选型不合理
    中间隐藏层全部使用sigmoid激活函数本身就容易出现梯度消失问题,层数较多时几乎无法完成深度网络的训练,建议替换为ReLU、LeakyReLU等激活函数。
  • 训练配置不合理
    1700条样本训练1000轮极容易出现过拟合,且你未设置验证集监控训练过程,无法提前感知模型训崩、过拟合等问题。

修复后示例代码

import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, LabelEncoder

# 加载数据
dataset = pd.read_csv('BNB.csv')
x = dataset.drop(columns=["Valuable"])
y = dataset["Valuable"]

# 标签编码,把-2/-1/0/1/2转为0-4的整数标签
le = LabelEncoder()
y = le.fit_transform(y)

# 特征标准化
scaler = StandardScaler()
x = scaler.fit_transform(x).astype('float32')

# 拆分数据集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)

# 搭建模型
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(256, input_shape=(x_train.shape[1],), activation='relu'))
model.add(tf.keras.layers.Dropout(0.3)) # 加dropout防止过拟合
model.add(tf.keras.layers.Dense(256, activation='relu'))
model.add(tf.keras.layers.Dropout(0.3))
model.add(tf.keras.layers.Dense(5, activation='softmax')) # 5分类输出

# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 训练模型,加入验证集监控
model.fit(x_train, y_train, epochs=100, validation_split=0.2)

# 预测时输出分类结果
predictions = model.predict(x_test)
predict_classes = le.inverse_transform(np.argmax(predictions, axis=1))

内容的提问来源于stack exchange,提问作者Renke Ludwig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:54:00