首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras阵列形状误差

Keras阵列形状误差
EN

Stack Overflow用户
提问于 2018-06-28 08:20:50
回答 2查看 297关注 0票数 1

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

神经网络:

代码语言:javascript
复制
>>> 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,)

错误:

代码语言:javascript
复制
>>> 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,)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-28 09:18:28

model.predict接受一批样本,如果你给它一个形状错误的样本,它会将第一个维度解释为批处理。

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

代码语言:javascript
复制
q_network.predict(obs.reshape(1, 8))
票数 2
EN

Stack Overflow用户

发布于 2018-06-28 09:00:00

predict方法需要一个2d数组,所以只需重塑您的obs

代码语言:javascript
复制
obs = np.reshape(obs,(-1,len(obs)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51078007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档