如何修复预期密集模型中的值错误?
How to fix a value error in the model expected dense?
我正在尝试使用 Keras 进行深度学习 (noob)。我试图在加载数据集(训练和测试)后创建模型。我的代码:
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: Error when checking input: expected dense_1_input to have shape (11,) but got array with shape (211,)
错误是什么意思?是什么原因造成的?
这意味着您通过将超参数设置为 input_shape = (11,)
来将第一层设置为期望输入形状 (11,),然后您为模型提供了等于 train
的形状。尝试使用:train.shape
并检查形状以确保模型可以使用它。您可能需要查看此答案 以确保您了解神经网络超参数的核心概念。
我正在尝试使用 Keras 进行深度学习 (noob)。我试图在加载数据集(训练和测试)后创建模型。我的代码:
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: Error when checking input: expected dense_1_input to have shape (11,) but got array with shape (211,)
错误是什么意思?是什么原因造成的?
这意味着您通过将超参数设置为 input_shape = (11,)
来将第一层设置为期望输入形状 (11,),然后您为模型提供了等于 train
的形状。尝试使用:train.shape
并检查形状以确保模型可以使用它。您可能需要查看此答案