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

如何在Keras中将矩阵输入转为单值输出并解决样本数不匹配问题

解决Keras输入输出样本数不匹配问题

错误原因

你的输入矩阵X包含5个样本(每行对应一个样本,共5行),但输出Y仅包含1个样本,两者样本数量不匹配,导致Keras抛出样本数不一致的错误。根据你的目标,分两种场景给出修改方案:


场景1:每个输入样本对应一个输出值(常规回归任务)

如果需求是让模型学习每行输入对应一个输出值,需为每个输入样本分配对应标签,保证X和Y的样本数一致(均为5)。

修改后的代码:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense

# Input (5个样本,每个样本4个特征)
X = np.array([[1, 2, 3, 4],
              [2, 3, 4, 5],
              [3, 4, 5, 6],
              [4, 5, 6, 7],
              [5, 6, 7, 8]])

# Output:每个样本对应一个值,共5个(可替换为真实业务标签)
Y = np.array([-1, -2, -3, -4, -5])

# 创建模型
model = Sequential()
model.add(Dense(10, input_dim=4, activation='relu'))
model.add(Dense(1, activation='linear'))

# 编译模型
model.compile(loss='mean_squared_error', optimizer='adam')

# 训练:样本数匹配,可正常运行
model.fit(X, Y, epochs=10, batch_size=1, verbose=1)

# 预测
new_data = np.array([[6, 7, 8, 9]])
pred = model.predict(new_data)
print("Prediction:", pred)

场景2:整个输入矩阵作为单个样本,输出单个值

如果需求是把整个5×4的矩阵作为一个输入样本,输出一个值,需调整X的形状,让它成为1个样本(样本维度放在第一维),同时保持Y的样本数为1。

修改后的代码:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense

# Input:将5×4矩阵展平为1个样本,形状变为(1, 20)
X = np.array([[1, 2, 3, 4],
              [2, 3, 4, 5],
              [3, 4, 5, 6],
              [4, 5, 6, 7],
              [5, 6, 7, 8]]).reshape(1, -1)

# Output:1个样本对应1个值
Y = np.array([-1])

# 创建模型:输入维度改为20(展平后的特征数)
model = Sequential()
model.add(Dense(10, input_dim=20, activation='relu'))
model.add(Dense(1, activation='linear'))

# 编译模型
model.compile(loss='mean_squared_error', optimizer='adam')

# 训练:样本数均为1,可正常运行
model.fit(X, Y, epochs=10, batch_size=1, verbose=1)

# 预测:新数据需保持相同形状(1个样本,展平为20维)
new_data = np.array([[6, 7, 8, 9],
                     [7, 8, 9, 10],
                     [8, 9, 10, 11],
                     [9, 10, 11, 12],
                     [10, 11, 12, 13]]).reshape(1, -1)
pred = model.predict(new_data)
print("Prediction:", pred)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:17:37