【发布时间】: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