为什么Python的形状不符合Keras的预期?

2024-05-08 23:05:53 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的代码中,我有:self._model.predict(next_state)

当我print(next_state.shape)时,我得到(14,)

但是当我运行代码时,我得到一个错误:

ValueError: Error when checking input: expected dense_4_input to have shape (14,) but got array with shape (1,)

model.summary是:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_4 (Dense)              (None, 24)                360       
_________________________________________________________________
dense_5 (Dense)              (None, 24)                600       
_________________________________________________________________
dense_6 (Dense)              (None, 4)                 100       
=================================================================
Total params: 1,060
Trainable params: 1,060
Non-trainable params: 0
_________________________________________________________________
None

Tags: 代码selfnoneinputmodel错误paramspredict
1条回答
网友
1楼 · 发布于 2024-05-08 23:05:53

模型希望输入数组的形状为(示例X特征)。这就是为什么输入和输出形状用(None, 24)来描述,其中'None'表示批大小。因此,第一个轴以行的形式表示要预测的不同示例,其特征以列的形式表示。kerasapi需要使用二维位置参数索引的数组,而您为它提供的是一个单位索引数组(14, )。你知道吗

要处理单个示例,一个简单的解决方法是在发送以进行预测之前,将数组重塑为具有两个位置指示符:

self._model.predict(np.reshape(next_state, [1, next_state.shape]))

它将您的输入更改为(1, 14),这是由(None, 14)表示的模型所必需的

相关问题 更多 >