2016-12-24 3 views
2

Im Experten mnist Tutorial in tensorflow Website, es so etwas wie diese:Eingang Dimension umformen in Tensorflow conolutional Netzwerk

x_image = tf.reshape(x, [-1,28,28,1]) 

Ich weiß, dass die reshape ist wie

tf.reshape(input,[batch_size,width,height,channel]) 

Q1: Warum ist Die Stapelgröße ist gleich -1? Was bedeutet die -1?

Und wenn ich den Code gehen da unten noch eine Sache ist kann ich nicht verstehen

W_fc1 = weight_variable([7 * 7 * 64, 1024]) 

Q2: Was ist die image_size * hat 64 Mittel?

Antwort

1

Q1: Warum ist die batch_size gleich -1? Was bedeutet die -1?

-1 bedeutet "diesen Teil für mich herausfinden". Zum Beispiel, wenn ich laufen:

reshape([1, 2, 3, 4, 5, 6, 7, 8], [-1, 2]) 

Es erstellt zwei Spalten, und was auch immer Anzahl der Zeilen muss es alles passen erhalten:

array([[1, 2], 
     [3, 4], 
     [5, 6], 
     [7, 8]]) 

Q2: Was bedeutet die image_size * 64 Mittel ?

Dies ist die Anzahl der Filter in dieser speziellen Filteraktivierung. Formen von Filtern in Konv-Schichten folgen dem Format [height, width, # of input channels (number of filters in the previous layer), # of filters].

0

Wenn Sie -1 als Dimension in tf.reshape übergeben, behält es die vorhandene Dimension bei. Aus der Dokumentation:

Wenn eine Komponente der Form der besondere Wert -1 ist, wird die Größe dieser Dimension berechnet, so dass die Gesamtgröße konstant bleibt. In flacht insbesondere eine Form von [-1] zu 1-D ab. Höchstens eine Komponente der Form kann -1 sein.

Die Bezugnahme auf 7 x 7 x 64 ist, da die Faltungsschicht auf dieses Beispiel vor aufgebracht wird hat das Bild auf eine Form von reduzierter [7, 7, 64], und die Eingabe zu der nächsten vollständig verbundenen Schicht muss eine einzelne Dimension sein, daher wird der Tensor in der nächsten Zeile des Beispiels von [7,7,64] auf [7 * 7 * 64] umgestaltet, so dass er sich mit der FC-Schicht verbinden kann.

Weitere Informationen darüber, wie Faltungen und max Pooling funktioniert, the wikipedia page hat einige hilfreiche Grafiken:

z.B. Netzwerk-Architektur:

cnn architecture

und Pooling:

cnn pooling

+0

Also was ist das 64? Ist es die Anzahl der Filter oder Windungen? – MonSh1rE

+0

Dies ist die Tiefe der Feature-Map am Punkt im Netzwerk. z.B.das Eingabebild hat wahrscheinlich eine Tiefe von drei (z. B. R-, G- und B-Farbkanäle). Die Faltungen auf jeder Ebene reduzieren den Pixelraum, erhöhen jedoch die Tiefe des Bildes. –

Verwandte Themen