Keras 输入维度错误?

数据挖掘 Python 神经网络 深度学习 喀拉斯 q学习
2021-10-14 21:24:01

Keras 的输入维度有问题。我的第一层是这样的:

model.add(Dense(128, batch_size=1, input_shape=(150,), kernel_initializer="he_uniform", kernel_regularizer=regularizers.l2(0.01), activation="elu"))

如您所见,输入尺寸应为 (150,) 并且使用固定的 batch_size 它是 (1, 150)

我的数据具有维度 (150,),例如可以是具有 150 个零的 numpy 数组。

old_qval = model.predict(old_state_m)

这里我调用模型进行预测。通常,Keras 应该自动将批量大小添加为一个额外的维度,所以我应该以 (1, 150) 结束,这会起作用。但是 Keras 在错误的地方添加了批量大小的维度,我最终得到 (150, 1)。我尝试了 tensorflow 和 theano 后端。

我的代码中有错误还是 Keras 有问题?

我该如何解决这个问题?我可以重塑我的输入数据,但它已经具有所需的 (150,) 形状并且应该没问题。我还能做什么?

如果我应该提供更多数据或代码,请随时询问。

1个回答

当您执行model.predict(X)第一个轴时,X始终是批处理中的索引。因此,如果您想预测一个样本,请执行以下操作X = np.expand_dims(X, axis=0)

在您的情况下,这应该有效:

old_qval = model.predict( np.expand_dims(old_state_m, axis=0) )