Работая с керасом, я узнал, что использование обертки негативно влияет на запросы кераса и scikit learn api. Я заинтересован в решении, чтобы оба.
Вариант 1: Scikit Wrapper
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)
-> Это позволяет мне печатать команды scikit, такие как precision_score () илиification_report (). Однако 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: Смешанный тип y недопустим, получил типы {'multiclass',
'MultiLabel-индикатор'}
Есть ли способ, который позволяет использовать оба?