将input_dim传递给 KerasClassifier (sklearn wrapper/interface)



我最初尝试了相同的方法,但遇到了与这个SO提问者相同的错误。然而,使用公认的(也是唯一的(答案给了我另一个错误:"input_dim不是法律参数。

然后,我尝试在原始问题上使用该解决方案("向 KerasClassifier 构造函数添加一个input_dim keyarg"(,并再次收到相同的错误。我做错了什么,还是现在有一种新的方法可以通过 sklearn 包装器 KerasClassifier 传递第一层的input_dim?

下面是最小的代码示例:

from keras.models import Sequential
from keras.layers import Dense
from sklearn import datasets
from keras.wrappers.scikit_learn import KerasClassifier
import numpy as np

def create_model():
    # create model
    model = Sequential()
    model.add(Dense(12, input_dim=4, init='uniform', activation='relu'))
    model.add(Dense(6, init='uniform', activation='relu'))
    model.add(Dense(1, init='uniform', activation='sigmoid'))
    # Compile model
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model
#Error thrown here:
model = KerasClassifier(build_fn=create_model, input_dim=5, nb_epoch=150, batch_size=10, verbose=0)

值错误:input_dim不是合法参数

您需要

input_dim作为参数之一传递给create_model()

def create_model(input_dim):
    # create model
    model = Sequential()
    # model.add(Dense(12, input_dim=4, init='uniform', activation='relu'))
    model.add(Dense(12, input_dim=input_dim, init='uniform', activation='relu'))

尽管您不需要为了删除错误而在create_model内部使用input_dim

相关内容

  • 没有找到相关文章

最新更新