ValueError:发现样本数量不一致的输入变量:[1, 74]
Posted
技术标签:
【中文标题】ValueError:发现样本数量不一致的输入变量:[1, 74]【英文标题】:ValueError: Found input variables with inconsistent numbers of samples: [1, 74] 【发布时间】:2022-01-16 17:22:02 【问题描述】:我想申请 LSTM。 我有 12 个特征和 74 行
删除目标变量后我的数据形状并为 3d 数组重塑它:(1, 74, 12) 和我的目标形状:(74,) 当我使用此代码拆分数据时:
x_train, x_test, y_train, y_test = train_test_split(data_1, target, test_size = 0.2,random_state =25)
我收到了这个错误:
ValueError: 发现样本数量不一致的输入变量:[1, 74]
我很好地定义了模型,但是当我拟合模型时,我也遇到了另一个错误
定义模型:
model = Sequential()
model.add(LSTM(1, batch_input_shape=(1, 74, 12), return_sequences = True))
model.add(Dense(units = 1, activation = 'sigmoid'))
model.compile(loss='mean_absolute_error', optimizer='adam', metrics=['accurecy'])
model.summary()
拟合模型:
history = model.fit(x_train, y_train, epochs = 100, validation_data= (x_test, y_test))
这里我也有这个错误:
ValueError:layersequential_14 的输入 0 与该层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:(无,12)
我该如何解决这个错误?
【问题讨论】:
可以分享整个traceback吗 请您编辑问题以添加一个简洁而有意义的标题吗? 我认为您需要将数据重新采样为(74,1, 12)
而不是(1, 74, 12)
【参考方案1】:
tf.keras.layers.LSTM
需要输入:形状为 [batch, timesteps, feature]
的 3D 张量。
import tensorflow as tf
inputs = tf.random.normal([32, 10, 8])
lstm = tf.keras.layers.LSTM(4, return_sequences=True, return_state=True)
whole_seq_output, final_memory_state, final_carry_state = lstm(inputs)
print(whole_seq_output.shape)
输出
(1, 74, 4)
如果您的输入形状是二维的,请使用tf.expand_dims(input, axis=0)
添加额外的维度。
【讨论】:
以上是关于ValueError:发现样本数量不一致的输入变量:[1, 74]的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:发现样本数量不一致的输入变量:[100, 300]
混淆矩阵 - ValueError:发现样本数量不一致的输入变量
ValueError:发现样本数量不一致的输入变量:[2750, 1095]
ValueError:发现样本数量不一致的输入变量:[29675、9574、29675]