Voorspellingen doen met modellen voor lang kortetermijngeheugen in Keras

Voorspellingen doen met modellen voor lang kortetermijngeheugen in Keras

Het doel van het ontwikkelen van een LSTM-model is een definitief model dat u kunt gebruiken voor uw sequentievoorspellingsprobleem.

In dit bericht ontdek je hoe je je model afrondt en het gebruikt om voorspellingen te doen over nieuwe data.

Na het voltooien van dit bericht weet je:

  • Hoe een definitief LSTM-model te trainen.
  • Hoe u uw uiteindelijke LSTM-model opslaat en later opnieuw laadt.
  • Hoe u voorspellingen kunt doen over nieuwe gegevens.

Geef uw project een kickstart met mijn nieuwe boek Long Short-Term Memory Networks With Python, inclusief stap-voor-stap tutorials en de Python-broncode bestanden voor alle voorbeelden.

Laten we beginnen.

Voorspellingen doen met modellen voor lang kortetermijngeheugen met Keras

Voorspellingen doen met modellen met lang kortetermijngeheugen met Keras
Foto door damon jah, enkele rechten voorbehouden.

Stap 1. Train een definitief model

Wat is een definitief LSTM-model?

Een laatste LSTM-model is een model dat u gebruikt om voorspellingen te doen over nieuwe gegevens.

Dat wil zeggen, gegeven nieuwe voorbeelden van invoergegevens, wilt u het model gebruiken om de verwachte uitvoer te voorspellen. Dit kan een classificatie zijn (een label toewijzen) of een regressie (een echte waarde).

Het doel van uw sequentievoorspellingsproject is om tot een definitief model te komen dat het beste presteert, waarbij 'beste' wordt gedefinieerd door:

  • Gegevens: de historische gegevens waarover u beschikt.
  • Tijd: de tijd die u aan het project moet besteden.
  • Procedure: de gegevensvoorbereidingsstappen, algoritme of algoritmen, en de gekozen algoritmeconfiguraties.

In uw project verzamelt u de gegevens, besteedt u de tijd die u heeft en ontdekt u de procedures voor gegevensvoorbereiding, het te gebruiken algoritme en hoe u deze configureert.

Het uiteindelijke model is het hoogtepunt van dit proces, het doel dat u zoekt om daadwerkelijk voorspellingen te doen.

Er bestaat niet zoiets als een perfect model. Er is alleen het beste model dat je hebt kunnen ontdekken.

Hoe een LSTM-model afronden?

U voltooit een model door de gekozen LSTM-architectuur en configuratie toe te passen op al uw gegevens.

Er is geen splitsing van trein en test en geen kruisvalidatieplooien. Zet alle gegevens weer samen in één grote trainingsdataset en pas uw model aan.

Dat is het.

Met het definitieve model kunt u:

  • Bewaar het model voor later of operationeel gebruik.
  • Laad het model en doe voorspellingen over nieuwe gegevens.

Zie het bericht voor meer informatie over het trainen van een definitief model:

Hulp nodig met LSTM's voor sequentievoorspelling?

Volg mijn gratis 7-daagse e-mailcursus en ontdek 6 verschillende LSTM-architecturen (met code).

Klik om u aan te melden en ontvang ook een gratis pdf-e-boekversie van de cursus.

Start nu uw GRATIS minicursus!

Stap 2. Sla uw definitieve model op

Keras biedt een API waarmee u uw model in een bestand kunt opslaan.

Het model wordt opgeslagen in HDF5-bestandsindeling die efficiënt grote reeksen getallen op schijf opslaat. U moet bevestigen dat u de h5py Python-bibliotheek hebt geïnstalleerd. Het kan als volgt worden geïnstalleerd:

U kunt een passend Keras-model opslaan in een bestand met de functie save () op het model.

Bijvoorbeeld:

Dit enkele bestand bevat de modelarchitectuur en gewichten. Het bevat ook de specificatie van het gekozen verlies- en optimalisatie-algoritme, zodat u de training kunt hervatten.

Het model kan opnieuw worden geladen (vanuit een ander script in een andere Python-sessie) met de functie load_model ().

Hieronder vindt u een compleet voorbeeld van het aanpassen van een LSTM-model, het opslaan in een enkel bestand en later opnieuw laden. Hoewel het laden van het model in hetzelfde script gebeurt, kan deze sectie worden uitgevoerd vanuit een ander script in een andere Python-sessie. Als u het voorbeeld uitvoert, wordt het model opgeslagen in het bestand lstm_model.h5.

Zie het bericht voor meer informatie over het opslaan en laden van uw Keras-model:

Stap 3. Maak voorspellingen over nieuwe gegevens

Nadat u uw model heeft afgerond en in een bestand heeft opgeslagen, kunt u het laden en gebruiken om voorspellingen te doen.

Bijvoorbeeld:

  • Bij een sequentieregressieprobleem kan dit de voorspelling zijn van de werkelijke waarde bij de volgende tijdstap.
  • Bij een sequentieclassificatieprobleem kan dit een klasseresultaat zijn voor een gegeven invoersequentie.

Of het kan een andere variatie zijn op basis van de specifieke kenmerken van uw sequentievoorspellingsprobleem. U wilt een uitkomst van uw model (yhat) met een invoereeks (X) waarbij de werkelijke uitkomst voor de reeks (y) momenteel onbekend is.

Mogelijk bent u geïnteresseerd in het doen van voorspellingen in een productieomgeving, als backend naar een interface of handmatig. Het hangt echt af van de doelen van uw project.

Elke gegevensvoorbereiding die wordt uitgevoerd op uw trainingsgegevens voordat u uw definitieve model aanpast, moet ook worden toegepast op nieuwe gegevens voordat u voorspellingen doet.

Voorspellen is het makkelijke gedeelte.

Het omvat het nemen van de voorbereide invoergegevens (X) en het aanroepen van een van de Keras-voorspellingsmethoden op het geladen model.

Onthoud dat de invoer voor het doen van een voorspelling (X) alleen bestaat uit de invoersequentie-gegevens die nodig zijn om een ​​voorspelling te doen, niet uit alle eerdere trainingsgegevens. In het geval van het voorspellen van de volgende waarde in een reeks, zou de invoersequentie 1 steekproef zijn met het vaste aantal tijdstappen en functies die werden gebruikt toen u uw model definieerde en paste.

Een ruwe voorspelling in de vorm en schaal van de activeringsfunctie van de uitvoerlaag kan bijvoorbeeld worden gedaan door de functie predict () op het model aan te roepen:

De voorspelling van een klasse-index kan worden gedaan door de functie predict_classes () op het model aan te roepen.

De voorspelling van kansen kan worden gedaan door de functie predict_proba () op het model aan te roepen.

Zie het bericht voor meer informatie over de levenscyclus van uw Keras-model:

Verder lezen

Deze sectie biedt meer bronnen over het onderwerp als u dieper zoekt.

Berichten

API

Overzicht

In dit bericht ontdekte u hoe u uw model kunt finaliseren en kunt gebruiken om voorspellingen te doen over nieuwe gegevens.

Concreet heb je geleerd:

  • Hoe een definitief LSTM-model te trainen.
  • Hoe u uw definitieve LSTM-model opslaat en later opnieuw laadt.
  • Hoe u voorspellingen kunt doen over nieuwe gegevens.

Heb je nog vragen?
Stel je vragen in de comments hieronder en ik zal mijn best doen om deze te beantwoorden.

Ontwikkel vandaag nog LSTM's voor sequentievoorspelling!

Lange-termijngeheugennetwerken met Python

Ontwikkel uw eigen LSTM-modellen in enkele minuten

... met slechts een paar regels python-code

Ontdek hoe in mijn nieuwe e-boek:
Lange-termijngeheugennetwerken met Python

Het zorgt voor zelfstudie tutorials over onderwerpen als:
CNN LSTM's, Encoder-Decoder LSTM's, generatieve modellen, gegevensvoorbereiding, voorspellingen doen en veel meer...

Breng eindelijk LSTM terugkerende neurale netwerken naar
Uw projecten voor sequentievoorspellingen

Sla de academici over. Alleen resultaten.

Zie wat erin zit

Misschien bent u ook geïnteresseerd in