структура DML_CONVOLUTION_INTEGER_OPERATOR_DESC (directml.h)

Выполняет свертывание фильтра FilterTensor с inputTensor. Этот оператор выполняет прямую сверку для целочисленных данных. Необязательные тензоры нулевой точки также можно использовать для вычитания значений нулевой точки из входного и фильтруемого тензора.

Синтаксис

struct DML_CONVOLUTION_INTEGER_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *InputZeroPointTensor;
  const DML_TENSOR_DESC *FilterTensor;
  const DML_TENSOR_DESC *FilterZeroPointTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *Dilations;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  UINT                  GroupCount;
};

Члены

InputTensor

Тип: const DML_TENSOR_DESC*

Тензор, содержащий входные данные. Ожидаемые размеры InputTensor{ BatchCount, InputChannelCount, InputHeight, InputWidth }.

InputZeroPointTensor

Тип: _Maybenull_ const DML_TENSOR_DESC*

Необязательный тензор, содержащий входные данные нулевой точки. Ожидаемые размеры InputZeroPointTensor{ 1, 1, 1, 1 }.

FilterTensor

Тип: const DML_TENSOR_DESC*

Тензор, содержащий данные фильтра. Ожидаемые размеры FilterTensor{ FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth }.

FilterZeroPointTensor

Тип: _Maybenull_ const DML_TENSOR_DESC*

Необязательный тензор, содержащий данные нулевой точки фильтра. Ожидаемые измерения FilterZeroPointTensor определяются, если требуется { 1, 1, 1, 1 } квантование по тензору или { 1, OutputChannelCount, 1, 1 } требуется квантование по каналу.

OutputTensor

Тип: const DML_TENSOR_DESC*

Тензор для записи результатов. Ожидаемые размеры OutputTensor{ BatchCount, OutputChannelCount, OutputHeight, OutputWidth }.

DimensionCount

Тип: UINT

Количество пространственных измерений для операции свертки. Пространственные измерения — это нижние измерения фильтра свертки. Это значение также определяет размер массивов Strides, Dilations, StartPadding и EndPadding . Поддерживается только значение 2.

Strides

Тип: _Field_size_(DimensionCount) const UINT*

Массив, содержащий шаги операции свертки. Эти шаги применяются к фильтру свертки. Они отделены от тензорных шагов, включенных в DML_TENSOR_DESC.

Dilations

Тип: _Field_size_(DimensionCount) const UINT*

Массив, содержащий расширения операции свертки. Расширения — это шаги, применяемые к элементам ядра фильтра. Это позволяет имитировать ядро фильтра большего размера путем заполнения внутренних элементов ядра фильтра нулями.

StartPadding

Тип: _Field_size_(DimensionCount) const UINT*

Массив, содержащий значения заполнения, применяемые к началу каждого пространственного измерения фильтра и входного тензора операции свертки.

EndPadding

Тип: _Field_size_(DimensionCount) const UINT*

Массив, содержащий значения заполнения, применяемые к концу каждого пространственного измерения фильтра и входного тензора операции свертки.

GroupCount

Тип: UINT

Количество групп, на которые делится операция свертки. GroupCount можно использовать для достижения глубинной свертки, задав GroupCount равным количеству входных каналов. При этом свертка делится на отдельную свертки для каждого входного канала.

Доступность

Этот оператор появился в DML_FEATURE_LEVEL_2_1.

Ограничения тензоров

  • FilterZeroPointTensor и InputZeroPointTensor должны иметь один и тот же DimensionCount.
  • FilterTensor, InputTensor и OutputTensor должны иметь одинаковые значения DimensionCount.
  • InputTensor и InputZeroPointTensor должны иметь один и тот же тип DataType.
  • FilterTensor и FilterZeroPointTensor должны иметь один и тот же тип DataType.

Поддержка тензоров

DML_FEATURE_LEVEL_4_0 и выше

Тензор Kind Измерения Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные { BatchCount, InputChannelCount, [InputHeight], InputWidth } от 3 до 4 INT8, UINT8
InputZeroPointTensor Необязательные входные данные { [1], [1], [1], 1 } от 1 до 4 INT8, UINT8
FilterTensor Входные данные { FilterBatchCount, FilterChannelCount, [FilterHeight], FilterWidth } от 3 до 4 INT8, UINT8
FilterZeroPointTensor Необязательные входные данные { [1], FilterZeroPointChannelCount, [1], [1] } от 1 до 4 INT8, UINT8
OutputTensor Выходные данные { BatchCount, OutputChannelCount, [OutputHeight], OutputWidth } от 3 до 4 INT32

DML_FEATURE_LEVEL_2_1 и выше

Тензор Kind Измерения Поддерживаемые счетчики измерений Поддерживаемые типы данных
InputTensor Входные данные { BatchCount, InputChannelCount, InputHeight, InputWidth } 4 INT8, UINT8
InputZeroPointTensor Необязательные входные данные { 1, 1, 1, 1 } 4 INT8, UINT8
FilterTensor Входные данные { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth } 4 INT8, UINT8
FilterZeroPointTensor Необязательные входные данные { 1, FilterZeroPointChannelCount, 1, 1 } 4 INT8, UINT8
OutputTensor Выходные данные { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } 4 INT32

Требования

Требование Значение
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть directml.h