Ich bin kürzlich gelaufen und habe Tensor Flow gelernt und ein paar Histogramme bekommen, die ich nicht interpretieren konnte. Normalerweise stelle ich mir die Höhe der Balken als Frequenz (oder relative Häufigkeit / Anzahl) vor. Die Tatsache, dass es keine Balken wie in einem normalen Histogramm gibt und die Tatsache, dass die Dinge schattiert sind, verwirrt mich. scheint es auch viele linien / höhen auf einmal zu geben?
Kennt sich jemand mit der Interpretation der folgenden Grafiken aus (und gibt möglicherweise gute Ratschläge, die beim Lesen von Histogrammen im Tensorflow allgemein hilfreich sein können):
Vielleicht sind einige andere interessante Dinge zu diskutieren: Wenn die ursprünglichen Variablen Vektoren oder Matrizen oder Tensoren waren, was zeigt dann der Tensorfluss tatsächlich, wie ein Histogramm für jede Koordinate? Vielleicht wäre es auch nett, darauf zu verweisen, wie man diese Informationen erhält, um die Menschen autark zu machen, da ich im Moment einige Schwierigkeiten hatte, nützliche Dinge in den Dokumenten zu finden. Vielleicht ein paar Tutorials zum Beispiel etc? Vielleicht wäre auch ein Ratschlag zur Manipulation hilfreich.
Als Referenz hier ein Auszug aus dem Code, der dies gab:
(X_train, Y_train, X_cv, Y_cv, X_test, Y_test) = data_lib.get_data_from_file(file_name='./f_1d_cos_no_noise_data.npz')
(N_train,D) = X_train.shape
D1 = 24
(N_test,D_out) = Y_test.shape
W1 = tf.Variable( tf.truncated_normal([D,D1], mean=0.0, stddev=std), name='W1') # (D x D1)
S1 = tf.Variable( tf.constant(100.0, shape=[]), name='S1') # (1 x 1)
C1 = tf.Variable( tf.truncated_normal([D1,1], mean=0.0, stddev=0.1), name='C1' ) # (D1 x 1)
W1_hist = tf.histogram_summary("W1", W1)
S1_scalar_summary = tf.scalar_summary("S1", S1)
C1_hist = tf.histogram_summary("C1", C1)
W1_hist = tf.histogram_summary("W1", W1)
. Es steht Histogramm, wie soll ich es sonst nennen? Ich weiß nicht, warum sie es Histogramm nennen würden, wenn es etwas anderes ist.Antworten:
Derzeit ist der Name "Histogramm" eine falsche Bezeichnung. Den Beweis dafür finden Sie in der README . Die Bedeutung der Histogramm-Oberfläche könnte sich eines Tages ändern, wie dort angegeben. Dies ist jedoch das, was es derzeit bedeutet.
Die Grafiken in Ihrer Frage mischen verschiedene Läufe von TensorFlow. Schauen Sie sich stattdessen die folgenden Diagramme an, in denen nur ein Lauf angezeigt wird:
Zunächst möchte ich sagen, dass die Kurven selbst Perzentile darstellen . Ich werde das Bild von hier ausleihen :
Dies bedeutet, dass die mit 93% bezeichnete Kurve das 93. Perzentil ist, was bedeutet, dass 93% der Beobachtungen zum Zeitpunkt 1,00k unter dem Wert ~ 0,130 lagen. Die Grafik gibt also 3 Informationen an, wobei der Prozentsatz der Beobachtungen bei jedem Schritt der Berechnung des neuronalen Netzwerktrainings einen bestimmten Wert gemäß einer bestimmten Denkkurve unterschreitet (zumindest in diesem Fall ist dies die Bedeutung der Schritte). Dies vermittelt Ihnen ein Gefühl für die Werteverteilung Ihres Netzwerks.
Es gibt auch die Minimal- und Maximalwerte, um einen Eindruck vom Wertebereich während des Trainings zu bekommen.
Die y-Achse zeigt Ihnen den Wert, den Sie interessieren, und die Kurve zeigt Ihnen das Perzentil und die x-Achse am Schritt. Also, wenn Sie haben:
quelle