AttributeError: у объекта 'Sequential' нет атрибута 'classes_' - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь откалибровать модель, обученную на 883 классах в керасах.

# Define model architecture
model = Sequential()
model.add(Dense(512,input_shape=(3,),activation="relu"))
model.add(BatchNormalization())
model.add(Dense(512,activation="relu"))
model.add(BatchNormalization())
model.add(Dense(883,activation="relu"))
model.add(Dense(883,activation="softmax"))
model = load_model("my_model.h5")
calib = CalibratedClassifierCV(model,method="sigmoid",cv="prefit")
calib.fit(X_train,y_train)

И я получаю ошибку

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/calibration.py", line 163, in fit
    calibrated_classifier.fit(X, y)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/calibration.py", line 345, in fit
    df, idx_pos_class = self._preproc(X)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sklearn/calibration.py", line 312, in _preproc
    transform(self.base_estimator.classes_)
AttributeError: 'Sequential' object has no attribute 'classes_'

model.classes_, кажется, не существует, так что я сделал не так?

model.classes_
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'Sequential' object has no attribute 'classes_'

Любая помощь будет высоко ценится, спасибо

1 Ответ

0 голосов
/ 30 сентября 2019

Вы должны использовать оболочку Scikit-learn. Примерно так:

from keras.wrappers.scikit_learn import KerasClassifier

def get_model():
    return load_model("my_model.h5")

model = KerasClassifier(build_fn = get_model, epochs=1, batch_size =10)
cv_model = CalibratedClassifierCV(model, method="sigmoid",cv="prefit")

https://keras.io/scikit-learn-api/

https://keras.io/examples/mnist_sklearn_wrapper/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...