Wie ändert man die Temperatur eines Softmax-Ausgangs in Keras?

8

Ich versuche derzeit, die Ergebnisse des folgenden Artikels zu reproduzieren.
Ссылка
Ich benutze Keras mit dem Theano Backend. In dem Artikel spricht er davon, die Temperatur der finalen Softmax-Schicht so zu steuern, dass unterschiedliche Outputs erreicht werden.

  

Temperatur. Wir können auch mit der Temperatur des Softmax spielen   während der Probenahme. Verringern der Temperatur von 1 auf etwas niedriger   Nummer (z.B. 0,5) macht die RNN zuversichtlicher, aber auch mehr   konservativ in seinen Proben. Umgekehrt werden höhere Temperaturen geben   mehr Vielfalt, aber auf Kosten von mehr Fehlern (z. B. Rechtschreibfehler,   etc). Insbesondere wird die Einstellung der Temperatur sehr nahe bei Null liegen   Wahrscheinlich würde Paul Graham sagen:

Mein Modell ist wie folgt.

%Vor%

Der einzige Weg, wie ich denken kann, die Temperatur der endgültigen dichten Schicht einzustellen, wäre, die Gewichtsmatrix zu erhalten und sie mit der Temperatur zu multiplizieren. Kennt jemand einen besseren Weg, es zu tun? Auch wenn irgendjemand etwas falsch sieht, wie ich das Modell einrichte, lassen Sie es mich wissen, da ich neu bei RNNs bin.

    
chasep255 16.05.2016, 02:50
quelle

2 Antworten

7

Nun, es sieht so aus, als ob die Temperatur etwas ist, was Sie mit der Ausgabe der softmax-Schicht machen. Ich habe dieses Beispiel gefunden.

Ссылка

Er wendet die folgende Funktion an, um den Soft-Max-Ausgang zu testen.

%Vor%     
chasep255 16.05.2016 12:37
quelle
0

Die Antwort von @ chasep255 funktioniert, aber Sie erhalten Warnungen wegen log (0). Sie können die Operation e ^ log (a) / T = a ^ (1 / T) vereinfachen und das Protokoll loswerden

%Vor%

Ich hoffe, es hilft!

    
Julian 03.11.2017 07:40
quelle