Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kehrt die Elemente einer oder mehrerer Untersequenzen eines Tensors um. Der Satz der umzukehrenden Teilsequenzen wird basierend auf der angegebenen Achsen- und Sequenzlänge ausgewählt.
Syntax
struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT Axis;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Der Eingabe tensor, der umzukehrende Elemente enthält.
SequenceLengthsTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der einen Wert für jede umzukehrende Untersequenz enthält und die Länge in Elementen dieser Untersequenz angibt. Nur die Elemente innerhalb der Länge der Untersequenz werden umgekehrt; die verbleibenden Elemente entlang dieser Achse werden unverändert in die Ausgabe kopiert.
Dieser Tensor muss die Dimensionsanzahl und größen aufweisen, die dem InputTensor entsprechen, mit Ausnahme der vom Axis-Parameter angegebenen Dimension. Die Größe der Achsendimension muss 1 sein. Wenn der InputTensor z. B. die Größe hat {2,3,4,5}und Achse 1 ist, muss die Größe des SequenceLengthsTensor sein{2,1,4,5}.
Wenn die Länge einer Untersequenz die maximale Anzahl von Elementen entlang dieser Achse überschreitet, verhält sich dieser Operator so, als würde der Wert auf das Maximum geklemmt.
OutputTensor
Typ: const DML_TENSOR_DESC*
Der Ausgabe tensor, in den die Ergebnisse geschrieben werden sollen. Dieser Tensor muss die gleichen Größen und datentypen wie der InputTensor aufweisen.
Axis
Typ: UINT
Der Index der Dimension, um die Elemente umgekehrt werden sollen. Dieser Wert muss kleiner als der DimensionCount-Wert des InputTensor sein.
Beispiele
Beispiel 1
InputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]]]
SequenceTensor: (Sizes:{1,1,3,1}, DataType:UINT32)
[[[[2],
[4],
[3]]]]
Axis: 3
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[ 2, 1, 3, 4],
[ 8, 7, 6, 5],
[11, 10, 9, 12]]]]
Beispiel 2: Umkehren entlang einer anderen Achse
InputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]]]]
SequenceTensor: (Sizes:{1,1,1,4}, DataType:UINT32)
[[[[2, 3, 1, 0]]]]
Axis: 2
OutputTensor: (Sizes:{1,1,3,4}, DataType:FLOAT32)
[[[[5, 10, 3, 4], // Notice that sequence lengths of 1 and 0 are effective nops
[1, 6, 7, 8],
[9, 2, 11, 12]]]]
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_2_1eingeführt.
Tensoreinschränkungen
- InputTensor, OutputTensor und SequenceLengthsTensor müssen über dieselbe DimensionCount verfügen.
- InputTensor und OutputTensor müssen denselben Datentyp aufweisen.
Tensorunterstützung
DML_FEATURE_LEVEL_5_0 und höher
| Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
|---|---|---|---|
| InputTensor | Eingabe | 1 bis 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
| SequenceLengthsTensor | Eingabe | 1 bis 8 | UINT64, UINT32 |
| OutputTensor | Ausgabe | 1 bis 8 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_4_0 und höher
| Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
|---|---|---|---|
| InputTensor | Eingabe | 1 bis 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
| SequenceLengthsTensor | Eingabe | 1 bis 8 | UINT32 |
| OutputTensor | Ausgabe | 1 bis 8 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_0 und höher
| Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
|---|---|---|---|
| InputTensor | Eingabe | 4 bis 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
| SequenceLengthsTensor | Eingabe | 4 bis 5 | UINT32 |
| OutputTensor | Ausgabe | 4 bis 5 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_1 und höher
| Tensor | Typ | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
|---|---|---|---|
| InputTensor | Eingabe | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
| SequenceLengthsTensor | Eingabe | 4 | UINT32 |
| OutputTensor | Ausgabe | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
Anforderungen
| Kopfzeile | directml.h |