预期density_43_input的形状为(3,),但数组的形状为(1,)

时间:2018-10-06 19:13:46

标签: python python-3.x tensorflow neural-network

我正在尝试进入NN,并且我正在制作最简单的模型来在大学中展示它。但是现在我真的很糟糕,只能学习。

我遇到一个错误:

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

型号:

model = Sequential()

model.add(Dense(500, input_shape=(3,), activation='relu'))
model.add(Dense(500, activation='relu'))
model.add(Dense(1))
model.add(Activation('linear'))

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(X, y, batch_size=32, epochs=3, validation_split=0.3)

预测:

t = np.array([-0.969308, 224.257508, 95.873082])
predict = model.predict(t)

预测的形状为(3,)。

我想念什么?

2 个答案:

答案 0 :(得分:0)

为什么不将model.add(Dense(1))更改为model.add(Dense(3))?

答案 1 :(得分:0)

将数组更改为np.array([[-0.969308, 224.257508, 95.873082]])。如果您没有在数据中添加其他维度,则tf会认为您要求它预测3个输入为1的输入,而不是1个输入为3的输入

编辑:要评论其他答案,您的输出尺寸很好,因为模型肯定在抱怨输入。预测函数需要输入数组