Overzicht van EvalDLL-evaluatie
De EvalDLL-bibliotheek biedt methoden om vooraf getrainde CNTK modellen te evalueren die zijn opgeslagen in de indeling CNTK model-v1. Deze is beschikbaar in C++ (op Windows en Linux) en C# (alleen op Windows).
Verschillende gegevenstypen en lagen evalueren
Momenteel ondersteunt de Eval-bibliotheek vectoren voor invoer en uitvoer. Dit betekent dat de invoervector moet overeenkomen met de invoerknooppunten in het model (functies). Sommige modellen worden getraind met afbeeldingen (bijvoorbeeld CIFAR-10), maar deze afbeeldingen worden eerst gevectoriseerd en vervolgens ingevoerd in het netwerk. De CIFAR-10-gegevensset bestaat bijvoorbeeld uit kleine afbeeldingen (32 pixels bij 32 pixels) of RGB-waarden. Hoewel elk een driedimensionale coördinaat (breedte, hoogte, kleur) is, worden de gegevens gevectoriseerd in een 1-dimensionale vector. Het is dus belangrijk om de onbewerkte gegevens te converteren naar de vectorindeling voorafgaand aan de evaluatie. Deze conversie moet op dezelfde manier worden uitgevoerd als wanneer deze wordt ingevoerd in het netwerk voor training.
Raadpleeg de pagina Afbeeldingstransformaties evalueren voor meer informatie, met name bij het omgaan met afbeeldingen.
Hoewel een al getraind model een specifieke set uitvoerknooppunten heeft, is het soms wenselijk om tijdens de evaluatie de waarden van andere knooppunten te verkrijgen (bijvoorbeeld verborgen lagen). Dit is mogelijk met behulp van de programmatische interface. Raadpleeg de pagina Verborgen lagen evalueren voor meer informatie.
Huidige beperkingen
- Evaluatie met één thread. De CNTK evaluatie-EvalDll-bibliotheek en de beheerde EvalWrapper-bibliotheek zijn één thread en één retrancy. Gelijktijdige evaluaties van één modelexemplaren worden niet ondersteund. Het is echter mogelijk om meerdere exemplaren van een model te laden en elk model met één thread te evalueren. Hierdoor kunnen meerdere modellen parallel worden geëvalueerd, maar elk model met één thread.
- Elk programma dat de vooraf gebouwde evaluatiebibliotheken (
Cntk.Eval
enCntk.Eval.Wrapper
DLL's in Windows, enlibCntk.Eval
in Linux) van het binaire CNTK pakket koppelt, moet dezelfde compilerversie gebruiken als die wordt gebruikt om de vooraf gebouwde bibliotheken te bouwen.