如何修改 model.fit 设置?
Posted
技术标签:
【中文标题】如何修改 model.fit 设置?【英文标题】:How to modify model.fit settings? 【发布时间】:2020-01-24 00:53:01 【问题描述】:嗨,在我更改数据集之前,我的代码一直运行良好。现在,我收到一个错误:
model.fit(train,train_df.iloc[:,-1],epochs=30, batch_size=20, verbose=1)
错误是:
ValueError:检查输入时出错:预期的 dense_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 和 epochs 吗?但是应该使用什么数字?
【问题讨论】:
【参考方案1】:一般来说,模型假设输入数据的第一个维度是批量大小。模型并不关心批量大小是多少,因此您在创建模型时永远不会设置它。相反,您应该将input_shape
设置为输入数据的每个样本 的形状。在您的情况下,每个样本似乎都是一个长度为 103 的向量,因此将 input_shape
设置为 (103,)
。
【讨论】:
以上是关于如何修改 model.fit 设置?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 CNN-LSTM 模型上应用 model.fit() 函数?
model.fit(X,y) 和 model.fit(train_X, train_y) 有啥区别
使用 tf.keras.Model.fit 进行训练时如何将自定义摘要添加到 tensorboard
如何从大型 .h5 数据集中批量读取数据,使用 ImageDataGenerator 和 model.fit 进行预处理,所有这些都不会耗尽内存?
如何重构/重新格式化包含要输入到 Tensorflow 的 model.fit() 中的图像的 Pandas 数据帧?
如何将 sample_weights 与 3D 医疗数据一起使用,而没有 model.fit(x=tf.data.Dataset) 导致无法挤压最后一个暗淡等错误