首页 文章

Keras阵列形状错误

提问于
浏览
1

为什么我的神经网络得到一个形状 ValueError 当我传入的是一个形状数组 (8,1) 但我得到的错误是神经网络抱怨得到 (1,)

神经网络:

>>> observation_dimension
(8,)
>>> q_network = Sequential([
    Dense(40, input_dim=observation_dimension, activation='relu'),
    Dense(40, activation='relu'),
    Dense(number_of_actions, activation='linear')
])
>>> obs
array([-0.00371828,  0.93953934, -0.37663383, -0.07161933,  0.00431531,
        0.08531308,  0.        ,  0.        ])
>>> obs.shape
(8,)

错误:

>>> q_network.predict(obs)
Traceback (most recent call last):
...
...
ValueError: Error when checking input: expected dense_27_input to have shape (8,) but got array with shape (1,)

2 回答

  • 2

    model.predict 采用一批样品,如果您给它一个形状错误的样品,它会将第一个维度解释为批次 .

    一个简单的解决方案是添加值为1的维度:

    q_network.predict(obs.reshape(1, 8))
    
  • 1

    predict 方法需要一个二维数组,所以只需重塑 obs

    obs = np.reshape(obs,(-1,len(obs)))
    

相关问题