猿问

KerasClassifier TypeError:__call__() 在 cross_val

我尝试在我的模型上进行 cross_val_score 并收到以下错误:


Traceback (most recent call last):

  File "/home/dinhnha1402/.local/lib/python2.7/site-packages/keras/wrappers/scikit_learn.py", line 210, in fit

    return super(KerasClassifier, self).fit(x, y, **kwargs)

  File "/home/dinhnha1402/.local/lib/python2.7/site-packages/keras/wrappers/scikit_learn.py", line 139, in fit

    **self.filter_sk_params(self.build_fn.__call__))

TypeError: __call__() takes exactly 2 arguments (1 given)


这是我的模型:


model = Sequential()

model.add(LSTM(int(128), input_shape=(timesteps, int(128)),return_sequences=False))

model.add(Dropout(0.2))

model.add(Dense(20, activation='relu', input_shape=(128,),kernel_initializer=initializers.glorot_uniform(seed=0)))

model.add(Dropout(0.2))

model.add(Dense(20, activation='softmax'))


model.add(Dense(2, activation='softmax')) 


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


### fit model


model.fit(X_train, Y_train, batch_size=batch_size, epochs= epochs, verbose=1, validation_data=(X_test, Y_test))


####Applying K-fold cross validation

classifier = KerasClassifier(build_fn=binary_classify_lstm_fc_model(), batch_size=10, epochs=100, verbose=0)

accuracies = cross_val_score(estimator= classifier, X = X_train, y = Y_train, cv=10, scoring="accuracy")#n_jobs= -1

print(accuracies)

我在任何地方都找不到这个错误(在谷歌上)。有没有人对如何解决这个问题有任何想法?


慕姐8265434
浏览 357回答 2
2回答

慕哥9229398

只需将损失从 categorical_crossentropy 更改为 mean_squared_error。

汪汪一只猫

只需删除“()”像那样:分类器 = KerasClassifier(build_fn=binary_classify_lstm_fc_model(),batch_size=10,epochs=100,verbose=0)======>分类器 = KerasClassifier(build_fn=binary_classify_lstm_fc_model,batch_size=10,epochs=100,verbose=0)
随时随地看视频慕课网APP

相关分类

Python
我要回答