0

嗨,在我更改数据集之前,我的代码一直运行良好。现在,我收到一个错误:

model.fit(train,train_df.iloc[:,-1],epochs=30, batch_size=20, verbose=1)

错误是:

ValueError:检查输入时出错:预期的dense_31_input具有形状(1125,)但得到的数组具有形状(103,)

变量是:

在此处输入图像描述

scaler = StandardScaler()

train=scaler.fit_transform(train_df.iloc[:,:-1])
test=scaler.fit_transform(test_df.iloc[:,:-1])

# Creating Deep Model



model = Sequential()

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

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

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

#add improvements 

model.add(Dropout(0.3))
#Train the model

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

model.fit(train,train_df.iloc[:,-1],epochs=30, batch_size=20, verbose=1)

#TEst the model

y_pred = model.predict(test_df.iloc[:,:-1])

我假设修复它。我需要更改 batch_size 和 epochs 吗?但是应该使用什么数字?

4

1 回答 1

1

一般来说,模型假设输入数据的第一维是批量大小。模型并不关心批量大小是多少,因此您在创建模型时永远不会设置它。相反,您应该设置输入数据的每个样本input_shape的形状。在您的情况下,每个样本似乎都是长度为 103 的向量,因此设置为.input_shape(103,)

于 2019-09-24T00:09:34.713 回答