Ich habe eine Matrix:Indexing pro Zeile in TensorFlow
Params =
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
Für jede Zeile ich einige Elemente unter Verwendung von Spaltenindizes auswählen möchten:
col_indices =
[[0 1]
[1 2]
[2 3]]
In Numpy, ich Zeilenindizes erstellen:
row_indices =
[[0 0]
[1 1]
[2 2]]
und tun params[row_indices, col_indices]
In TenforFlow, tat ich dies:
tf_params = tf.constant(params)
tf_col_indices = tf.constant(col_indices, dtype=tf.int32)
tf_row_indices = tf.constant(row_indices, dtype=tf.int32)
tf_params[row_indices, col_indices]
Aber es einen Fehler ausgelöst:
ValueError: Shape must be rank 1 but is rank 3
Was bedeutet das? Wie sollte ich diese Art der Indizierung richtig machen?
Danke!
Vielen Dank für Ihre Antwort! Aber ich verstehe nicht, woher "Rang 1" und "Rang 3" kommen. Beide Indizes Matrix verwende ich habe 2 Ränge. Und das Ergebnis, das ich erwarte, sollte auch 2 Ränge haben, genauso wie numpy Code. Irgendwelche Ideen? Vielen Dank! – xyd
warum die Zeilen- und Spaltenindizesmatrizen den Rang 2 haben? Was repräsentieren sie? Ich schätze, du versuchst etwas falsch zu machen! Geben Sie Ihren vollständigen Code an, damit wir ihn nach Möglichkeit ausführen und testen können. –
Bitte beachten Sie meinen obigen Code, ich möchte die genaue Indizierung als numpy in Tensorflow erreichen. Danke – xyd