CNTK Evaluatie met behulp van cntk.exe
Een model evalueren met behulp van cntk.exe
Het evalueren van een model met behulp van het uitvoerbare CNTK zelf, dat wil cntk.exe, is vergelijkbaar met het trainingsproces. Maar in plaats van de opdracht trainen te gebruiken, wordt de opdracht 'eval' in het configuratiebestand geplaatst.
Het gebruik van het uitvoerbare CNTK voor evaluatie heeft de volgende voordelen:
CPU/GPU-mogelijkheid
Net als training kan CNTK tijdens de evaluatie gebruikmaken van de GPU. Raadpleeg de overzichtspagina van het configuratiebestand voor meer informatie.
Lezers (en hun transformaties)
Net als bij modeltraining kunnen de invoegtoepassingen voor lezer (bijvoorbeeld ImageReader) enkele gegevenstransformaties uitvoeren op de invoergegevens voordat ze tijdens de training aan het netwerk worden ingevoerd. Deze transformaties maken geen deel uit van CNTK (per se), maar van de lezers. Als u dezelfde getransformeerde gegevens tijdens de evaluatie wilt invoeren, moeten de transformaties plaatsvinden voorafgaand aan het invoeren. Wanneer u evalueert met behulp van het uitvoerbare CNTK, kan dezelfde lezer (zoals gebruikt tijdens de evaluatie) worden gebruikt en kan dus dezelfde transformatie worden toegepast. Zoals verderop op deze pagina wordt besproken, moeten deze transformaties programmatisch buiten de evaluatie-engine worden uitgevoerd voordat de gegevens voor evaluatie worden ingediend (ervan uitgaande dat het model is getraind met getransformeerde gegevens).
Modelaanpassing
Wanneer u CNTK gebruikt voor evaluatie, is er een mogelijkheid om de indeling van het model te wijzigen met behulp van BrainScript. Dit maakt extra mogelijkheden mogelijk, zoals het beschikbaar maken van verborgen lagen voor evaluatie. Raadpleeg de BrainScript-pagina voor meer informatie.
Het gebruik van het uitvoerbare CNTK voor evaluatie heeft de volgende nadelen:
Opspiltijd van proces
Het CNTK uitvoerbare bestand (van nature) wordt uitgevoerd als een proces en duurt dus enige tijd om te draaien. Voor services waarbij veel aanvragen dynamisch moeten worden verwerkt, is de beste optie om de evaluatiebibliotheek in een service te gebruiken.
Invoer/uitvoer op basis van bestanden
Het CNTK uitvoerbare bestand leest de invoergegevens uit bestand(en) en schrijft de uitvoergegevens naar een bestand. Voor services die in de cloud worden uitgevoerd, kan dit prestatieproblemen veroorzaken.
Opmerking: Als u de route voor het evalueren van een CNTK model met het uitvoerbare CNTK uitvoert, moet u ervoor zorgen dat uw parameters geschikt zijn voor de evaluatie. Met name het opgeven van een geschikte grootte voor de MiniBatchSize. Raadpleeg de pagina Problemen met CNTK oplossen voor meer informatie.