【问题标题】:Invalid numpy shape in keras modelkeras模型中无效的numpy形状
【发布时间】:2018-12-23 08:46:49
【问题描述】:

我想构建一个接受简单一维输入向量的神经网络。但是,下面的代码给了我一个错误:

import numpy as np  
from keras.models import Model
from keras.layers import Input, Dense

input_ = Input((311,))
x = Dense(200)(input_)
output = Dense(100)(x)
nn = Model([input_], [output])
nn.compile('SGD', loss='mean_squared_error')
nn.predict(np.zeros(311))

ValueError: 检查时出错:预期 input_1 的形状为 (311,),但数组的形状为 (1,)

这对我来说很奇怪,因为 print(np.zeros(311).shape) 按预期打印 (311,)

np.zeros(311) 更改为np.zeros((311,)) 不会更改任何内容,并且将Input((311,)) 替换为Input(311) 不起作用,因为Input 期望 形状元组:

TypeError: 'int' 对象不可迭代

如何正确地为 keras 模型提供一维向量?

【问题讨论】:

  • 你的意思是每个训练样本是像2.76这样的单一值?
  • 你试过了吗:input_ = Input(shape=(311,))?
  • 这个模型对我来说没有多大意义——你想达到什么目的?
  • predict 的第一个维度必须是批处理维度,即 predict(np.zeros(shape=(1, 311))) 应该可以工作。
  • @IonicSolutions 啊谢谢,问题解决了。

标签: python python-3.x numpy keras


【解决方案1】:

predict 的第一个维度必须是批处理维度,即 predict(np.zeros(shape=(1, 311))) 应该可以工作。

有关详细信息,请参阅documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-18
    • 2021-12-28
    • 2020-01-02
    • 2020-09-26
    • 2019-01-26
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多