如何修复模型预期密集的值错误?

时间:2019-08-11 02:59:21

标签: python keras deep-learning keras-layer valueerror

我正在尝试与Keras进行深度学习(菜鸟)。我尝试在加载数据集(培训和测试)后创建模型。我的代码:

scaler = StandardScaler().fit(train)

train=scaler.transform(train)
test=scaler.transform(test)

# Creating Deep Model


model = Sequential()

# Add an input layer
model.add(Dense(12, activation='relu', input_shape=(11,)))

# Add one hidden layer
model.add(Dense(8, activation='relu'))

# Add an output layer
model.add(Dense(1, activation='sigmoid'))

#add improvements 
model.add(BatchNormalization())
model.add(Dropout(0.5))
#Train the model

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

model.fit(train,train_targets,epochs=20, batch_size=1, verbose=1)

但是,我在最后一行收到错误消息:

  

ValueError:检查输入时出错:预期density_1_input具有形状(11,)但形状为(211,)的数组

错误是什么意思?可能是什么原因造成的?

1 个答案:

答案 0 :(得分:0)

这意味着您可以通过将超参数设置为input_shape = (11,)来设置第一层以期望输入形状(11,),然后为模型提供等于train的形状。尝试使用:train.shape并检查形状以确保模型可以使用它。您可能需要检查答案Keras input explanation: input_shape, units, batch_size, dim, etc,以确保您了解神经网络超参数的核心概念。