[PYTHON] So aktivieren Sie das Speichern von Keras Regressor mit pickle oder joblib

Überblick

Ich erhalte eine Fehlermeldung, wenn ich versuche, KerasRegressor mit pickle oder joblib zu speichern. Wie man es speicherbar macht.

Lösung

Affen Patch Keras Regressor unten

def KerasRegressor__getstate__(self):
    result = { 'sk_params': self.sk_params }
    with tempfile.TemporaryDirectory() as dir:
        if hasattr(self, 'model'): #Es gibt Fälle, in denen es aufgrund eines Klons durch den übergeordneten Schätzer usw. nicht existiert.
            self.model.save(dir + '/output.h5', include_optimizer=False)
            with open(dir + '/output.h5', 'rb') as f:
                result['model'] = f.read()
    return result
KerasRegressor.__getstate__ = KerasRegressor__getstate__

def KerasRegressor__setstate__(self, serialized):
    self.sk_params = serialized['sk_params']
    with tempfile.TemporaryDirectory() as dir:
        model_data = serialized.get('model')
        if model_data:
            with open(dir + '/input.h5', 'wb') as f:
                f.write(model_data)
            self.model = models.load_model(dir + '/input.h5')
KerasRegressor.__setstate__ = KerasRegressor__setstate__

Kommentar

__getstate__, __setstate__Kann verwendet werden, um die Serialisierung und Deserialisierung von Gurken für jede Klasse anzupassen.(Für Details)

Recommended Posts

So aktivieren Sie das Speichern von Keras Regressor mit pickle oder joblib
So reduzieren Sie die GPU-Speichernutzung mit Keras
So debuggen Sie mit Jupyter oder iPython Notebook
Ich kann nicht nerven. Wie man mit nervigen Objekten umgeht
So verarbeiten Sie Kamerabilder mit Teams und Zoom
[TensorFlow 2 / Keras] Ausführen des Lernens mit CTC Loss in Keras
So aktivieren Sie das Lesen / Schreiben von net.Conn mit golang, um mit dem Kontext abzubrechen
Für Anfänger, wie man mit häufigen Fehlern in Keras umgeht
Wie aktualisiere ich mit SQLAlchemy?
Wie man mit Theano besetzt
Wie mit SQLAlchemy ändern?
So trennen Sie Zeichenfolgen mit ','
Wie man RDP auf Fedora31 macht
Wie lösche ich mit SQLAlchemy?
Speichern und laden Sie Daten mit joblib, pickle
Python: So verwenden Sie Async mit
So verwenden Sie virtualenv mit PowerShell
So installieren Sie Python-Pip mit Ubuntu20.04LTS
Umgang mit unausgeglichenen Daten
Wie fange ich mit Scrapy an?
Erste Schritte mit Python
Umgang mit dem DistributionNotFound-Fehler
Wie fange ich mit Django an?
Aufblasen von Daten (Datenerweiterung) mit PyTorch
So berechnen Sie das Datum mit Python
So installieren Sie den MySQL-Connector mit pip3
So verbinden Sie INNER mit SQL Alchemy
So installieren Sie Anaconda mit pyenv
[Python] Umgang mit dem is-Instanzfehler "is instance () arg 2 muss ein Typ oder ein Tupel von Typen sein"