2017-03-27 4 views
0

Ich habe die folgende Kreuz-Entropie-Funktion.Wie werden Werte im Array gespeichert, um Graphen in Matplotlib darzustellen?

cross_entropy = -tf.reduce_sum(y_*tf.log(y_conv)) 
for i in range(max_training_step): 
    batch = next_batch(i) 
    if i % FLAGS.beta_resolution == 0: 
     train_accuracy = accuracy.eval(feed_dict={x: batch[0], y_: batch[1], keep_prob: 1.0}) 
     print("step %d, training accuracy %g" % (i, train_accuracy)) 

Ich möchte es nach jedem Trainingsschritt drucken. Und ich möchte matplotlib verwenden, um den Diagramm-S/W-Trainingsschritt und die Entropie zu zeichnen.

Wie kann ich das tun? (Ich möchte Tensorflow nicht für Diagrammplotten verwenden)

Antwort

0

Wenn Sie Ihren Sitzungsaufruf ausführen (z. B. res=sess.run(...)), können Sie einen Abruf für Ihre Cross Entropy-Variable durchführen.

Zum Beispiel, sagen wir, Sie haben eine komplizierte sess.run() Aufruf, der einige Vorhersagen bekommt aber auch auf Ihre Kreuzentropie wollen, dann können Sie Code haben, der wie folgt aussieht:

`` `

`` ` Durch Abrufen innerhalb des Aufrufs können Sie Tensoren aus Ihrem Diagramm abrufen.

+0

Kann ich es tun, ohne Tensorflow wie diese – eman

+0

zu verwenden, wenn ich Trainingsschritt definieren und Entropie als leere Array kreuzen und dann die Werte in For-Schleife mit Append-Befehl speichern. Und dann benutze ich matplotlib, um den Graph zwischen zwei zu zeichnen. Kann es im Tensorflußcode arbeiten? – eman

+0

Sie müssen Tensorflow an irgendeinem Punkt verwenden, weil Tensorflow die Kreuzentropie erzeugt, aber wenn Sie die Kreuzentropie bei jedem Durchlauf in Ihrer for-Schleife holen, dann können Sie anfügen, mit Matplotlib oder was auch immer verwenden. Im obigen Beispiel ist die Kreuz-Entropie (xent), die res [1] oben ist, nur ein Array oder ein Xent-Wert wie jede andere Python-Variable. – JCooke

Verwandte Themen