Problembehandlung
Diese Seite sammelt einige der am häufigsten auftretenden Fallfälle.
Während der Schulung meines binären Klassifizierers sehe ich immer einen Klassifikationfehler von 0 auch aus dem ersten Minibatch
KlassifizierungFehler funktioniert nur ordnungsgemäß für Probleme mit mehreren Klassen. Für binäre Klassifizierung verwenden Sie dieses einfache Rezept
Obwohl das Modell mit einem größeren Satz als dem Evaluierungssatz trainiert wurde, CNTK während der Auswertung nicht mehr arbeitsspeichert.
Die Schulung des Modells verfügt in der Regel über eine minibatchSize
Eigenschaft, die in der CNTK Konfigurationsdatei festgelegt ist. Stellen Sie beim Auswerten des Modells mithilfe von CNTK.exe sicher, dass das minibatchSize
Modell geeignet ist. Um schnell zu ermitteln, ob diese Eigenschaft das Problem verursacht, legen Sie die Eigenschaft auf einen niedrigen Wert (z. B. minibatchSize=2
) in der Konfigurationsdatei für den Auswertungsbefehl fest. (vgl. Problem #468)
Ich erhalte SegFault unter Linux mit tiefen Netzwerken (wie ResNet152).
Möglicherweise verfügen Sie nicht über genügend Stapelgröße. BrainScript erfordert eine Menge Stapel. Führen Sie den Befehl aus: ulimit -s 65536. Dadurch wird die Stapelgröße auf 64 MB festgelegt.
Während der Validierung wird der folgende Fehler angezeigt: Informationen zum Auslösen der Ausnahme "cuDNN-Fehler 8: CUDNN_STATUS_EXECUTION_FAILED ; GPU=0 ; hostname=haha; expr=err'
Legen Sie die MinibatchSize-Eigenschaft auf einen kleineren Wert (z. B. ) fest. minibatchSize=2
Wenn ich CNTK mit VS2013/VS2015 kompiliere, wird ein Compilerfehler angezeigt, was ist falsch?
Sie müssen Visual Studio 2017 aktualisieren. Siehe hier: Einrichten von CNTK für Windows
Ich habe den Image Reader mit ZIP-Unterstützung aktiviert und erhalte "Plug-In nicht gefunden: 'Cntk.Deserializers.Image-.dll' (alter Name 'ImageReader.dll')"- Fehler beim Ausführen von Image Reader-Komponententests oder versuchen, den Reader zu verwenden. Was ist möglicherweise falsch?
Überprüfen Sie, ob Sie zlib und libzip ordnungsgemäß installiert haben.
Ich habe gerade CNTK binärpaket heruntergeladen und installiert und möchte einen Auftrag ausführen, aber seltsame Fehler wie fehlende CUDA-Bibliotheken erhalten.
Bitte überprüfen Sie sorgfältig, was Sie in Ihrem PATH
. Insbesondere, wenn es sich um einen freigegebenen Entwicklungscomputer handelt. Dies wird häufig durch ältere (vorherige) Versionen von CNTK oder CNTK Komponenten verursacht, die über den konfigurierten PATH erreichbar sind.
Bei Windows habe ich eine neue Version des NVIDIA-Treibers installiert, und jetzt schlägt CNTK Build mit den Fehlern wie ..\Common\BestGpu.cpp(24): fatal error C1083: Cannot open include file: 'nvml.h': No such file or directory
Sie haben eine Bereinigungsoption im NVIDIA-Treiberinstallationsprogramm ausgewählt. Dies führt dazu, dass GPU Deployment Kit (GDK) entfernt wird. Führen Sie zum Reparieren des Systems die folgenden Schritte aus:
- Starten des CUDA-Installers
- Auswählen der benutzerdefinierten (erweiterten) Installation
- Deaktivieren aller Installationsoptionen mit Ausnahme des GPU Deployment Kit
- Dadurch wird automatisch die Option "Grafiktreiber " ausgewählt– es wird erwartet. Lassen Sie es ausgewählt.
- Fahren Sie mit der CUDA-Installation fort
- Nach erfolgreicher CUDA-Installation starten Sie die Installation der gewünschten Grafiktreiberversion
- Auswählen der benutzerdefinierten (erweiterten) Installation
- Stellen Sie sicher, dass eine NeuinstallationNICHT ausgewählt ist, und fahren Sie mit der Installation fort.
Die anfängliche Lesezeit dauert sehr lange , oder ich erhalte eine der folgenden Ausnahmen: "Fehler des Betriebssystemaufrufs oder Vorgangs, der auf diesem Betriebssystem nicht unterstützt wird" oder "EXCEPTION aufgetreten: CUSPARSE-Fehler 1" oder ein Segfault mit AllocationFailureHandler im Stapel.
Ein möglicher Grund hierfür ist der übermäßige Speicherdruck, der durch das Laden des gesamten Datasets im Arbeitsspeicher mit dem Standardfenster (z. B. unbegrenzter) Zufallsisierungsfenster verursacht wird. Versuchen Sie, Ihre Arbeitsauslastung mit einem expliziten randomizationWindow
Wert auszuführen, der die Menge der im Arbeitsspeicher zwischengespeicherten Eingabedaten einschränkt. Fügen Sie dazu den Konfigurationsabschnitt die folgenden Parameter reader
hinzu (z 10000
. B. können Sie einen beliebigen Wert auswählen, der in den Arbeitsspeicher passt und eine gute Randomisierung gewährleistet):
randomize=true
randomizationWindow=10000 #(assuming that 10K samples << total available memory)
Ich erhalte Fehler beim Verwenden der Eval C#-Bibliothek Cntk.Eval.Wrapper.dll (alter Name EvalWrapper.dll) in Azure Web App wie folgt: "Datei oder Assembly 'einige CNTK DLLs' konnte nicht geladen werden, oder eine Ausnahme System.Runtime.InteropServices.SEHException oder "InternalServiceFault: Externe Komponente hat eine Ausnahme ausgelöst.".
Stellen Sie zunächst sicher, dass alle CNTK Abhängigkeits-DLLs in der Azure Web App bereitgestellt werden.
Anschließend müssen Sie Ihre Azure Web App so festlegen, dass 64-Bit-VM verwendet wird. Damit die Azure Web App CNTK nicht verwalteten DLLs laden kann, sollten Sie die PATH-Variable ändern, indem Sie den folgenden Code in der Application_Start()
Methode hinzufügen:global.asax
string pathValue = Environment.GetEnvironmentVariable("PATH");
string domainBaseDir = AppDomain.CurrentDomain.BaseDirectory;
string cntkPath = domainBaseDir + @"bin\";
pathValue += ";" + cntkPath;
Environment.SetEnvironmentVariable("PATH", pathValue);
Ausführliche Schritte finden Sie auf der Seite "Auswerten eines Modells in einer Azure WebApi".
Ich kann meine Anwendung mithilfe von Cntk.Eval-.lib/dll erstellen, aber eine Ausnahme erhalten, die den folgenden ähnlich ist, während der Ausführung
Eine nicht behandelte Ausnahme vom Typ "Microsoft.MSR". CNTK. Extensibility.Managed.CNTKRuntimeException' ist in Cntk.Wrapper-.dll
Zusätzliche Informationen: configparameters: erforderlicher Parameter fehlt: unbekannt:modelPath
Mögliche Gründe:
- Unterschiedliche Buildkonfiguration (Release oder Debug) zwischen Ihrer Anwendung und der
Cntk.Eval-<VERSION>.lib/dll
. Wenn Sie Ihre Anwendung in der Version erstellen, verknüpfen Sie bitte mit der Version der Version vonCntk.Eval-<VERSION>.dll
. Identisch mit der Debugkonfiguration. Dieser Fehler tritt in der Regel für C++-Anwendung auf. - Verschiedene GCC Compilerversionen unter Linux: Die
Cntk.Eval
Bibliothek unter Linux basiert auf GCC 5.4. Wenn Sie eine andere GCC Version für Ihre Anwendung verwenden, wird möglicherweise der obige Fehler angezeigt. - Der ModelPath ist falsch. Derzeit muss der ModelPath als vollständiger Pfad angegeben werden. Im CSEvalClient-Beispiel wird der relative Pfad mit dem aktuellen Arbeitsverzeichnis kombiniert, um den vollständigen Pfad zu erstellen. Und das CreateNetwork() muss eine Zeichenfolge übergeben werden, die das Attribut "modelPath=" enthält, das den Dateipfad des Modells angibt. Derzeit wird das zugeordnete Laufwerk für Modelpath nicht unterstützt.
Ich erhalte das folgende Ergebnis mit CNTKTextFormat-Reader -- WARNUNG: Alle für die aktuelle Sequenz erwarteten Eingaben beim Lesen eines Gleitkommawerts beim Offset
Der CTF-Reader erfordert, dass jede gut gebildete Linie entweder mit einem "Linienfeed" \n oder "Wagenrücklauf, Linienfeed" \r\n Symbolen (einschließlich der letzten Zeile der Datei) enden muss.