2016-08-08 31 views
0

Ich habe einige Daten, die ich in ein neuronales Faltungsnetzwerk einspeisen möchte.Visualisierung von np.reshape für TensorFlow

 

for ranking_list in train: 
    home_exp = [] 
    away_exp = [] 
    exp = [] 
    home_team = ranking_list[:16] 
    away_team = ranking_list[16:] 
    count = 0 
    for h in home_team: 
     row_h = [] 
     row_a = [] 
     for a in away_team: 
      count += 1 
      ex_h, ex_a = values(h,a) 
      row_h.append(ex_h) 
      row_a.append(ex_a) 
     home_exp+=row_h 
     away_exp+=row_a 

    exp = np.array(home_exp + away_exp) 
    reformatted_training.append(np.reshape(exp, [-1, 16,16,2])) 
 

Ich habe eine Rangliste, die 32-Rankings enthält, von denen 16 mit einer Heimmannschaft beziehen, und 16 auf eine Mannschaft, damit die Liste in zwei 16-Element-Listen aufgeteilt.

Dann wird jede Permutation dieser Rangfolgen verwendet, um zwei Werte zu erzeugen, ex_h und ex_a.

Das Bild, das ich in meinem Kopf habe, ist, dass ich das Äquivalent eines 16x16 Bildes mit zwei Kanälen einspeisen möchte (eins für ex_h Werte und eins für ex_a Werte).

Ist der Anruf, den ich zu np.reshape mache dies zu erreichen, finde ich es schwer, dies zu visualisieren. Ich bin auch etwas verwirrt von der -1 und warum TensorFlow einen Rang 4 Tensor benötigt.

Antwort

1

Ich denke, Sie haben Recht, dass "np.reshape das erreichen".

-1 bedeutet, dass die Größe der ersten Dimension automatisch als total_number_of_elements/16/16/2 berechnet wird.

Die vier Dimensionen sind: Stapelgröße, Höhe, Gewicht, Kanäle (Anzahl der Feature-Maps). Es gibt eine Batch-Größe, da es einen Mini-Batch-Gradienten-Abstieg verwendet.