我正在尝试进入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,)。
我想念什么?
答案 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的输入
编辑:要评论其他答案,您的输出尺寸很好,因为模型肯定在抱怨输入。预测函数需要输入数组