структура DML_TILE_OPERATOR_DESC (directml.h)
Создает выходной тензор путем укладки входного тензора. Элементы в каждом измерении входного тензора повторяются кратным в массиве Repeats .
Синтаксис
struct DML_TILE_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT RepeatsCount;
const UINT *Repeats;
};
Члены
InputTensor
Тип: const DML_TENSOR_DESC*
Тензор для считывания, который содержит элементы для плитки.
OutputTensor
Тип: const DML_TENSOR_DESC*
Тензор для записи, который будет содержать фрагментированные выходные данные. Для каждого измерения i
в [0, InputTensor.DimensionCount-1]
выходной размер вычисляется как OutputTensor.Sizes[i] = InputTensor.Sizes[i] * Repeats[i]
. Этот тензор должен иметь тот же размер DimensionCount , что и входной тензор.
RepeatsCount
Тип: UINT
Это поле определяет размер массива Repeats . Это значение должно совпадать с inputTensor.DimensionCount.
Repeats
Тип: const UINT*
Каждое значение в этом массиве соответствует одному из измерений входного тензора (по порядку). Каждое значение — это количество фрагментированных копий этого измерения. Значения должны быть больше 0.
Примеры
RepeatsCount: 4
Repeats: {1, 1, 3, 3}
InputTensor: (Sizes:{1, 1, 2, 3}, DataType:FLOAT32)
[[[[1, 2, 3]
[4, 5, 6]]]]
InputTensor: (Sizes:{1, 1, 6, 9}, DataType:FLOAT32)
[[[[1, 2, 3, 1, 2, 3, 1, 2, 3]
[4, 5, 6, 4, 5, 6, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
[4, 5, 6, 4, 5, 6, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
[4, 5, 6, 4, 5, 6, 4, 5, 6]]]]
Доступность
Этот оператор появился в DML_FEATURE_LEVEL_1_0
.
Ограничения тензоров
InputTensor и OutputTensor должны иметь один и тот же тип DataType.
Поддержка тензоров
DML_FEATURE_LEVEL_4_1 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | От 1 до 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Выходные данные | От 1 до 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_3_1 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
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 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Выходные данные | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_1_0 и выше
Тензор | Kind | Поддерживаемые счетчики измерений | Поддерживаемые типы данных |
---|---|---|---|
InputTensor | Входные данные | 4 | FLOAT32, FLOAT16 |
OutputTensor | Выходные данные | 4 | FLOAT32, FLOAT16 |
Требования
Верхняя часть | directml.h |