【发布时间】:2018-08-28 12:55:56
【问题描述】:
我想创建如下图所示的神经网络模型
我的 x_train 变量有 (20204,2) 维度,而 y_train 有 (20204,) 维度
我使用的是 keras Sequential 模型,但是当我运行下面的代码时
model=Sequential()
model.add(Dense(output_dim = 2, init = 'uniform', activation = 'relu', input_dim=20204))
model.add(Dense(output_dim = 3,init = 'uniform',activation = 'softmax'))
model.compile(loss = 'sparse_categorical_crossentropy',optimizer = 'adam',metrics = ['accuracy'])
model.fit(x_train,y_train,batch_size=12,epochs=14)
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=12)
print(loss_and_metrics)
我收到一个错误提示
ValueError: Error when checking input: expected dense_26_input to have shape (20204,) but got array with shape (2,)
我该如何解决这个问题?
【问题讨论】:
-
Dense(units=4, kernel_initializer='random_uniform', activation = 'relu', input_shape=(2,))例如。看来你用的是旧的api。 -
input_dim指的是输入特征的维度,在您的问题中为 2。此外,根据图中,隐藏层有4个单元,因此第一个Dense层的output_dim必须是4。
标签: python machine-learning neural-network keras