tensorflow erstellen-Maske von unterschiedlichen Längen
Ich habe einen tensor der Längen in tensorflow, lassen Sie uns sagen, es sieht wie folgt aus:
[4, 3, 5, 2]
Ich möchte erstellen Sie eine Maske von 1en und 0EN, deren Anzahl von 1en entsprechen den Einträgen zu diesem tensor, gepolstert von 0s auf einer Länge von insgesamt 8. I. e. Ich möchte zum erstellen dieser tensor:
[[1,1,1,1,0,0,0,0],
[1,1,1,0,0,0,0,0],
[1,1,1,1,1,0,0,0],
[1,1,0,0,0,0,0,0]
]
Wie könnte ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies kann erreicht werden durch eine Vielzahl von TensorFlow Transformationen:
mask
zu ints oder verwenden Sie direkt anstatttf.select
auf die Letzte Zeile?tf.zeros_like(mask)
erstellen eines null-initialisiert tensor der Form des Tensorsmask
.tf.less
automatisch die Ausstrahlung für Sie?Kann dies nun erreicht werden, indem
tf.sequence_mask
. Mehr details hier.Habe ich eine etwas kürzere version, als die bisherigen Antwort. Nicht sicher, ob es effizienter ist oder nicht