【发布时间】:2018-06-24 18:10:24
【问题描述】:
在使用 keras 时,我了解到使用包装器会对 keras 和 scikit learn api 请求产生不利影响。我对两者兼有的解决方案感兴趣。
变体 1:scikit 包装器
from keras.wrappers.scikit_learn import KerasClassifier
def model():
model = Sequential()
model.add(Dense(10, input_dim=4, activation='relu'))
model.add(Dense(3, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
estimator = KerasClassifier(build_fn=model, epochs=100, batch_size=5)
model.fit(X, y)
-> 这让我可以打印诸如 accuracy_score() 或 classification_report() 之类的 scikit 命令。但是,model.summary() 不起作用:
AttributeError: 'KerasClassifier' 对象没有属性 'summary'
变体 2:无包装器
model = Sequential()
model.add(Dense(10, input_dim=4, activation='relu'))
model.add(Dense(3, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, y, epochs=100, batch_size=5)
-> 这让我可以打印 model.summary() 但不能打印 scikit 命令。
ValueError: Mix type of y not allowed, got types {'multiclass', '多标签指标'}
有没有一种方法可以同时使用?
【问题讨论】:
标签: python scikit-learn keras wrapper summary