[PYTHON] Die Ungenauigkeit von Tensorflow war auf log (0) zurückzuführen.

Ich habe kürzlich angefangen, TensorFlow zu verwenden, aber während des Lernens hatte ich das Problem, dass die Genauigkeit plötzlich abnahm und sich nicht änderte. Wenn es darunter liegt, nimmt die Genauigkeit ab dem 70. Schritt plötzlich ab.

.
.
.
step:67 train:0.894584 test:0.756296
step:68 train:0.900654 test:0.756944
step:69 train:0.897526 test:0.758796
step:70 train:0.361345 test:0.333333
step:71 train:0.361345 test:0.333333
step:72 train:0.361345 test:0.333333
step:73 train:0.361345 test:0.333333
.
.
.

Mit Blick auf die Gewichte war es wie folgt.

(pdb) w1
array([[[[ nan,  nan,  nan, ...,  nan,  nan,  nan],
         [ nan,  nan,  nan, ...,  nan,  nan,  nan],
         [ nan,  nan,  nan, ...,  nan,  nan,  nan]],

        [[ nan,  nan,  nan, ...,  nan,  nan,  nan],
         [ nan,  nan,  nan, ...,  nan,  nan,  nan],
         [ nan,  nan,  nan, ...,  nan,  nan,  nan]], 
.
.
.

Da es sich um NaN handelt, habe ich nach "Tensorflow Nan" gesucht und eine Lösung gefunden. http://stackoverflow.com/questions/33712178/tensorflow-nan-bug

Der Problemteil war der Berechnungsteil der Kreuzentropie, der wie folgt war (y_conv ist die Wahrscheinlichkeit jedes Labels durch die Softmax-Funktion).

python


cross_entropy = -tf.reduce_sum(labels*tf.log(y_conv))

Wenn dies so bleibt, wird es log (0) und NaN kann herauskommen. Daher wurde es gelöst, indem auf den Bereich von 1e-10 bis 1,0 normalisiert und dann das Protokoll wie unten gezeigt erstellt wurde.

python


cross_entropy = -tf.reduce_sum(labels*tf.log(tf.clip_by_value(y_conv,1e-10,1.0)))

Es gibt eine Funktion namens ~~ tf.nn.softmax_cross_entropy_with_logits, und es scheint besser, sie wie folgt zu verwenden. ~~ → Diese Methode hat nicht funktioniert.

Recommended Posts

Die Ungenauigkeit von Tensorflow war auf log (0) zurückzuführen.
Einstellung zur Ausgabe des Protokolls zur Ausführung von cron
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Nimm das Ausführungsprotokoll von Sellerie
Ergänzung zur Erklärung von vscode
Die Geschichte, dass die Version von Python 3.7.7 nicht an Heroku angepasst wurde
Bedingte Verzweigung aufgrund des Vorhandenseins einer Shell-Skriptdatei
[TensorFlow 2] So überprüfen Sie den Inhalt von Tensor im Diagrammmodus
Die erste künstliche Intelligenz. So überprüfen Sie die installierte Version von Tensorflow.
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
Die Geschichte des Versuchs, den Client wieder zu verbinden
Hat die Anzahl der Ladenschließungen aufgrund des Einflusses des neuen Koronavirus zugenommen?
Skript zum Ändern der Beschreibung von Fasta
So überprüfen Sie die Version von Django
Die Geschichte, MeCab in Ubuntu 16.04 zu setzen
Ich bin verblüfft über das Verhalten von filter () aufgrund verschiedener Versionen von Python
Wahrscheinlich die einfachste Einführung in TensorFlow
Die Geschichte von pep8 wechselt zu pycodestyle
Visualisieren Sie die Exportdaten des Piyo-Protokolls
P100-PCIE-16GB wurde der GPU von Google Colab hinzugefügt, bevor ich es wusste
AtCoder AGC 041 C - Ich war süchtig nach der vollständigen Suche nach Domino-Qualität
Ich habe die Größenänderung von TensorFlow nicht verstanden und sie daher visuell zusammengefasst.
So installieren Sie das Deep Learning Framework Tensorflow 1.0 in der Windows Anaconda-Umgebung
So berechnen Sie die Volatilität einer Marke
Melden Sie sich mit SSH bei einem Remote-Server an
So finden Sie den Bereich des Boronoi-Diagramms
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
Die Form der eindimensionalen Anordnung von Numpy war kompliziert
Ich möchte das Erscheinungsbild von zabbix anpassen
Loggen Sie sich mit json mit pygogo ein.
Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Versuchen Sie, die Bewegung des Sonnensystems zu simulieren
Die Geschichte vom Umzug von Pipenv zur Poesie
Erstellen Sie einen Befehl, um das Arbeitsprotokoll abzurufen
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
[Django] Lassen Sie uns versuchen, den Teil von Django zu klären, der im Test irgendwie durch war
Mit der Docker-Version der Nginx-Einheit war es ein wenig schwierig, eine Flasche zu machen
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
So ermitteln Sie die Anzahl der Stellen in Python
Ein Memo zum visuellen Verstehen der Achse von Pandas.Panel
Ich möchte das Ausführungsergebnis von strace erfassen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
Ich habe das MNIST-Tutorial von tensorflow für Anfänger ausprobiert.
Versuchen Sie, die Probleme des "Matrix-Programmierers" zu lösen (Kapitel 1).
Tensorflows Denkweise lernte aus der Kartoffelherstellung
Die Entscheidung von scikit-learn Wie man ein Holzmodell visualisiert
Option [Python] zum Deaktivieren der Ausgabe von click.progressbar
Lassen Sie uns die Grundlagen des Python-Codes von TensorFlow aufschlüsseln
Senden Sie Protokolldaten vom Server an Splunk Cloud
Versuchen Sie, die Anzahl der Likes auf Twitter zu schätzen
Umschalten der Bot-Thermo-Hygrometer-Werte mit Raspberry Pi