向KerasRegress提供数据时出错

2024-04-19 06:37:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将Keras(版本2.0.6)和SKLearn(版本0.18.1)与python2.7结合使用,以进行一些基本的机器学习。你知道吗

我有2208行51786列的X输入,我正在建立我的基本神经网络,如下所示:

def baseline_model():
    # create model
    model = Sequential()
    model.add(Dense(13, input_dim=51786, kernel_initializer='normal', activation='relu'))
    model.add(Dense(1, kernel_initializer='normal'))
    # Compile model
    model.compile(loss='mean_squared_error', optimizer='adam')
    return model

estimator = KerasRegressor(build_fn=baseline_model, nb_epoch=100, batch_size=5, verbose=2)

kfold = KFold(n_splits=5, random_state=100)
results = cross_val_score(estimator, X, y, cv=kfold)

不幸的是,我得到的ValueError如下:

ValueError: Cannot feed value of shape (1766, 10) for Tensor u'dense_45_input:0', which has shape '(?, 51786)'

这个形状(1766, 10),是我从中借用代码的教程中使用的原始形状。但是,我似乎找不到其他地方可以改变这个形状(除了input_dim)。。。你知道吗

有什么建议吗?你知道吗

谢谢!你知道吗

编辑:奇怪地运行以下命令:

estimators = []
estimators.append(('standardize', StandardScaler()))
estimators.append(('mlp', KerasRegressor(build_fn=baseline_model, epochs=50, batch_size=5, verbose=2)))
pipeline = Pipeline(estimators)
kfold = KFold(n_splits=5, random_state=100)
results = cross_val_score(pipeline, X, y, cv=kfold)
print("Standardized: %.2f (%.2f) MSE" % (results.mean(), results.std()))

Tags: 版本addinputmodelmeankernelresultsdense