我想在Keras中尝试一个简单的模型,我想将其作为输入大小为5x3的矩阵。在下面的示例中,在添加第一个致密层时,通过使用input_shape=(5, 3)
来指定。Keras错误:期望dense_input_1有3个维度
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.optimizers import Adam
import numpy as np
model = Sequential()
model.add(Dense(32, input_shape=(5, 3)))
model.add(Activation('relu'))
model.add(Dense(32))
model.add(Activation('relu'))
model.add(Dense(4))
adam = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model.compile(loss='mean_squared_error', optimizer=adam)
x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]])
y = model.predict(x)
然而,当我运行的代码中,model.predict()
功能提供了以下错误:
ValueError: Error when checking : expected dense_input_1 to have 3 dimensions, but got array with shape (5, 3)
但我不理解的错误。 x
的形状是(5,3),这正是我告诉第一个密集层期望的输入。为什么因此期待三个维度?看起来这可能与批量大小有关,但我认为input_shape
只是指网络的形状,与批量大小无关......
感谢您的建议。我尝试过使用'input_shape =(3,)',但是网络'y'的输出已经变形了(5,4)。因此,这表明它将'x'视为一个大小为5的批次,每个条目的大小为3.然后,输出'y'也是一个大小为5的批次,每个输出的大小为4。我想要的是。我希望输入是形状(5,3),这样当我运行'model.predict()'时,它会给出形状输出(1,4)。 – Karnivaurus