共用方式為


DML_SLICE_OPERATOR_DESC結構 (directml.h)

擷取輸入張量 (「配量」) 。

配量中複製的專案會使用每個維度的三個值來決定。

  • 位移會標記要複製到維度中的第一個專案。
  • 大小會標示要複製到維度中的項目數目。
  • stride 表示維度中的元素遞增或步驟。

提供的 OffsetsSizesStrides 只能複製輸入 tensor (超出界限讀取範圍的元素,不允許) 。 配量 的大小 必須完全符合輸出張量大小。 一般而言,複製的項目會計算如下。

OutputTensor[OutputCoordinates] = InputTensor[Offsets + Strides * OutputCoordinates]

語法

struct DML_SLICE_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  DimensionCount;
  const UINT            *Offsets;
  const UINT            *Sizes;
  const UINT            *Strides;
};

成員

InputTensor

類型: const DML_TENSOR_DESC*

要從中擷取配量的張量。

OutputTensor

類型: const DML_TENSOR_DESC*

要寫入交叉分析數據結果的 Tensor。

DimensionCount

類型: UINT

維度的數目。 此欄位會決定 OffsetsSizeStrides 陣列的大小。 此值必須符合輸入和輸出張量的 DimensionCount 。 此值必須介於 1 到 8 之間,包括從 DML_FEATURE_LEVEL_3_0開始;先前的功能層級需要 4 或 5 的值。

Offsets

類型:_Field_size_ (DimensionCount) const UINT*

數位,包含元素中輸入張量之每個維度的配量開頭。

Sizes

類型:_Field_size_ (DimensionCount) const UINT*

數位,包含元素中每個維度的配量大小。 這個陣列中的值必須符合輸出張量中指定的大小。

Strides

類型:_Field_size_ (DimensionCount) const UINT*

數位,包含元素中輸入張量之每個維度的配量步幅。 大於 1 的步幅表示輸入張量的專案可能會略過 (例如,2 的步調會沿著維度) 選取每秒一個元素。

範例

下列範例使用相同的輸入張量:

InputTensor: (Sizes:{1, 1, 4, 4}, DataType:FLOAT32)
[[[[ 1,  2,  3,  4],
   [ 5,  6,  7,  8],
   [ 9, 10, 11, 12],
   [13, 14, 15, 16]]]]

範例 1. 連續配量

Offsets = {0, 0, 1, 2}
Sizes   = {1, 1, 3, 2}
Strides = {1, 1, 1, 1}

OutputTensor: (Sizes:{1, 1, 3, 2}, DataType:FLOAT32)
[[[[ 7,  8],
   [11, 12],
   [15, 16]]]]

範例 2. Strided 配量

Offsets = {0, 0, 1, 0}
Sizes   = {1, 1, 2, 2}
Strides = {1, 1, 2, 3}

OutputTensor: (Sizes:{1, 1, 2, 2}, DataType:FLOAT32)
[[[[ 5,  8],
   [13, 16]]]]

備註

在 中DML_FEATURE_LEVEL_2_1引進了較新版本的這個運算元DML_SLICE1_OPERATOR_DESC

可用性

這個運算子是在 中 DML_FEATURE_LEVEL_1_0引進的。

Tensor 條件約束

InputTensorOutputTensor 必須具有相同 的 DataTypeDimensionCount

Tensor 支援

DML_FEATURE_LEVEL_4_1和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8
OutputTensor 輸出 1 到 8 FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_3_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 1 到 8 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputTensor 輸出 1 到 8 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_2_1和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 到 5 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputTensor 輸出 4 到 5 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_1_0和更新版本

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 到 5 FLOAT32、FLOAT16、INT32、INT16、UINT32、UINT16
OutputTensor 輸出 4 到 5 FLOAT32、FLOAT16、INT32、INT16、UINT32、UINT16

規格需求

需求
標頭 directml.h