如何修改model.fit设置?

时间:2019-09-23 22:59:24

标签: python keras deep-learning epoch batchsize

嗨,我的代码过去一直运行良好,直到我更改了数据集。现在,我在:

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

错误是:

  

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

变量为:

enter image description here

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和纪元吗?但是应该使用什么数字?

1 个答案:

答案 0 :(得分:1)

通常,模型假定输入数据的第一维为批处理大小。模型不在乎批处理大小,因此在创建模型时永远不要设置它。相反,您应该将input_shape设置为输入数据的每个样本的形状。在您的情况下,每个样本似乎都是长度为103的向量,因此请将input_shape设置为(103,)