Rockchip · AI & Linux Hub

AI-инференс

RKNN2 V2.5.0 · RK3566/RK3568:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RK3566/RK3568:Рекуррентные сети, арифметика и пулинг · Полные параметры и ограничения операторов по оригиналу V2.5.0.

· ArmSoM Editorial · Rockchip source documentation · 14 мин чтения

Этот справочник платформ RKNN2 V2.5.0 предназначен для разработчиков ArmSoM при выборе и адаптации моделей. Он не подтверждает поддержку на всех платах ArmSoM: проверьте SoC платы, фактические версии Toolkit2, Runtime, драйвера NPU и BSP. В оригинале не задана единая версия ядра Linux. Аппаратная проверка на ArmSoM не выполнялась.

Источник: предоставленные китайская и английская редакции RKNN2 Supported Operators and Constraints Reference V2.5.0, 374 и 384 страницы. Китайский текст следует китайской редакции; английский, русский и немецкий — английской. Ограничения платформ не объединяются. В английском PDF рисунки и таблицы I/O содержат китайские подписи; их происхождение сохранено, добавлены редактируемые локализованные таблицы. Написание ConvTranpose и исходные уравнения LSTM/GRU сохранены; эти формулы не являются исправлениями реализации SDK.

Страницы источника: CN 30–48; EN 32–50.

Rockchip RKNN2

Серия справочников операторов

RKNN2 V2.5.0 · RK3566/RK3568:Основы и свёртки

RKNN2 V2.5.0 · RK3566/RK3568:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RK3566/RK3568:Формы, срезы и транспонирование

RKNN2 V2.5.0 · RK3566/RK3568:Активации, нормализация и расширения

RKNN2 V2.5.0 · RK3588:Основы и свёртки

RKNN2 V2.5.0 · RK3588:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RK3588:Формы, срезы и транспонирование

RKNN2 V2.5.0 · RK3588:Активации, нормализация и расширения

RKNN2 V2.5.0 · RK3562:Основы и свёртки

RKNN2 V2.5.0 · RK3562:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RK3562:Формы, срезы и транспонирование

RKNN2 V2.5.0 · RK3562:Активации, нормализация и расширения

RKNN2 V2.5.0 · RV1103/RV1106:Основы и свёртки

RKNN2 V2.5.0 · RV1103/RV1106:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RV1103/RV1106:Формы, срезы и транспонирование

RKNN2 V2.5.0 · RV1103/RV1106:Активации, нормализация и расширения

RKNN2 V2.5.0 · RK3576/RV1126B:Основы и свёртки

RKNN2 V2.5.0 · RK3576/RV1126B:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RK3576/RV1126B:Формы, срезы и транспонирование

RKNN2 V2.5.0 · RK3576/RV1126B:Активации, нормализация и расширения

RKNN2 V2.5.0 · RK2118:Основы и свёртки

RKNN2 V2.5.0 · RK2118:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RK2118:Формы, срезы и транспонирование

RKNN2 V2.5.0 · RK2118:Активации, нормализация и расширения

RKNN2 V2.5.0 · RV1103B/RV1106B:Основы и свёртки

RKNN2 V2.5.0 · RV1103B/RV1106B:Рекуррентные сети, арифметика и пулинг

RKNN2 V2.5.0 · RV1103B/RV1106B:Формы, срезы и транспонирование

RKNN2 V2.5.0 · RV1103B/RV1106B:Активации, нормализация и расширения

RKNN2 V2.5.0 · Поддержка и ограничения операторов CPU

RKNN2 V2.5.0 · Поддержка и ограничения операторов GPU

RKNN2 V2.5.0 · Ввод/вывод модели, выравнивание и ограничения свёрток

Div

Выполняет поэлементное бинарное деление (C=A/B) с многомерным расширением по правилам NumPy.

Входы

  • A:T1,T2
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.
  • B:T1,T2
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.

Выходы

  • C:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer

Ограничения типов данных

  • T1:float16(Tensor)
  • T2:float(constTensor)

Expand

Расширяет входной тензор по заданным shape и правилам, подобно numpy.array(input) *numpy.ones(shape): размерности выравниваются справа; соответствующие размерности должны совпадать либо одна из них должна быть 1.

Входы

  • input:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
  • shape:T2
    • shape:[batch,channel,height,width]

Выходы

  • output:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:int64(Tensor)

Ограничения расширения размерностей

  • [b,c,1,w]->[b,c,h,w],h∈[1,8192]
  • [b,1,1,w]->[b,c,h,w],h∈[1,8192]
  • [b,c,h,1]->[b,c,h,w],w ∈[1,8192]
  • [b,1,h,1]->[b,c,h,w],w ∈[1,8192]
  • [b,c,1,1]->[b,c,h,w],h∈[1,8192],w ∈[1,8192]

GRU

Управляемый рекуррентный блок (GRU). Расширения и варианты GRU называются операторами exGRU. Параметры с пометкой (extern) относятся только к exGRU. Формулы вычисления:

Equations(Default:f=Sigmoid,g=Tanh):
r_t = f(x_t · W_r + h_{t−1} · R_r + Wb_r + Rb_r)
z_t = f(x_t · W_z + h_{t−1} · R_z + Wb_z + Rb_z)
h_t = g(x_t · W_h + (r_t ⊙ h_{t−1}) · R_h + Rb_h + Wb_h), (WRB=0)
h_t = g(x_t · W_h + r_t ⊙ (h_{t−1} · R_h + Rb_h)) + Wb_h, (WRB=1)
H_t = (1 − z_t) ⊙ h_t + z_t ⊙ h_{t−1}

Входы

  • X:T1
    • shape:[seq_length,batch_size,input_size]
      • seqlength∈(0,8192]
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • inputsize∈(0,8192]
    • Поддержка квантования
      • per-layer
  • W:T1
    • shape:[num_directions,4*hidden_size,input_size]
      • inputsize∈(0,8192]
      • hiddensize∈(0,8192]
      • numdirections:1or2
    • Поддержка квантования
      • per-layer
      • per-channel
  • R:T1
    • shape:[num_directions,4*hidden_size,hidden_size]
      • hiddensize∈(0,8192]
      • numdirections:1or2
    • Поддержка квантования
      • per-layer
      • per-channel
  • B:T2
    • shape:[num_directions,8*hidden_size]
      • hiddensize∈(0,8192]
      • numdirections:1or2
    • Поддержка квантования
      • per-layer
      • per-channel
  • sequence_lens:T3(optional)
    • shape:[batch_size]
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
  • initial_h:T1(optional)
    • shape:[num_directions,batch_size,hidden_size]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer

Выходы

  • Y:T1
    • shape:[seq_length,num_directions,batch_size,hidden_size]
      • seqlength∈(0,8192]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer
  • Y_h:T1(optional)
    • shape:[num_directions,batch_size,hidden_size]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer

Атрибуты

  • linear_before_reset:int
    • Выбор варианта LBR:1(T) или 0(F).
  • direction(extern):string
    • Задаёт направление вычисления GRU.
    • forward: прямое направление GRU.
    • reverse: обратное направление GRU.
    • bidirectional: двунаправленное вычисление GRU.
  • sequence_size(extern):int
    • Задаёт seqsize входа GRU; без ограничений, рекомендуется выравнивание по 4.
  • hidden_size(extern):int
    • hiddensize блока GRU; без ограничений, рекомендуется выравнивание по 8.
  • input_layout(extern):int
    • Задаёт layout, соответствующий смыслу shape данного входа.
    • Необходимо задать указанный layout и фактические параметры оператора: batch_size, sequence_size, hidden_size.
    • snc: входной shape данного layout — [seqs,batches,input_size].
    • (sn)c: входной shape данного layout — [seqs*batches,input_size,1,1].
  • output_layout(extern):int
    • Задаёт layout, соответствующий смыслу shape данного выхода.
    • Необходимо задать указанный layout и фактические параметры оператора: batch_size, sequence_size, hidden_size, directions.
    • sbnc: выходной shape данного layout — [seqs,directions,batches,hidden_size].
    • (sn)c: выходной shape данного layout — [seqsbatches,directionsinput_size,1,1].

Ограничения типов данных

  • T1:float16(Tensor)
  • T2:float(Tensor)
  • T3:float(Scalar)

Прочие возможности

  • Совместная работа нескольких ядер: ещё не поддерживается.

Gather

Выбирает по Indices элементы входа X вдоль заданной axis и объединяет их.

Входы

  • X:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
  • Indices:T2
    • Индексы выбираемых элементов; rank =1.

Выходы

  • Y:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:int(Tensor)

Атрибуты

  • axis:int(Tensor)
    • axis∈{0,1,2,3}
    • Задаёт размерность входа, из которой выбирает Indices.

Прочие возможности

  • Совместная работа нескольких ядер: ещё не поддерживается.

LSTM

Сеть долгой краткосрочной памяти (LSTM). Расширения и варианты LSTM называются операторами exLSTM. Параметры с пометкой (extern) относятся только к exLSTM. Формулы вычисления:

Equations(Default:f=Sigmoid,g=Tanh,h=Tanh):
i_t = f(x_t · W_i + h_{t−1} · R_i + Wb_i + Rb_i)
f_t = f(x_t · W_f + h_{t−1} · R_f + Wb_f + Rb_f)
c_t = f(x_t · W_c + h_{t−1} · R_c + Wb_c + Rb_c)
o_t = f(x_t · W_o + h_{t−1} · R_o + Wb_o + Rb_o)
C_t = f_t ⊙ C_{t−1} + i_t ⊙ c_t
h_t = o_t ⊙ h(C_t)

Входы

  • X:T1
    • shape:[seq_length,batch_size,input_size]
      • seqlength∈(0,8192]
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • inputsize∈(0,8192]
    • Поддержка квантования
      • per-layer
  • W:T1
    • shape:[num_directions,4*hidden_size,input_size]
      • inputsize∈(0,8192]
      • hiddensize∈(0,8192]
      • numdirections:1or2
    • Поддержка квантования
      • per-layer
      • per-channel
  • R:T1
    • shape:[num_directions,4*hidden_size,hidden_size]
      • hiddensize∈(0,8192]
      • numdirections:1or2
    • Поддержка квантования
      • per-layer
      • per-channel
  • B:T2,T3
    • shape:[num_directions,8*hidden_size]
      • hiddensize∈(0,8192]
      • numdirections:1or2
    • Поддержка квантования
      • per-layer
      • per-channel
  • sequence_lens:T4,T5(optional)
    • shape:[batch_size]
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
  • initial_h:T1(optional)
    • shape:[num_directions,batch_size,hidden_size]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer
  • initial_c:T1(optional)
    • shape:[num_directions,batch_size,hidden_size]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer

Выходы

  • Y:T1
    • shape:[seq_length,num_directions,batch_size,hidden_size]
      • seqlength∈(0,8192]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer
  • Y_h:T1(optional)
    • shape:[num_directions,batch_size,hidden_size]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer
  • Y_c:T1(optional)
    • shape:[num_directions,batch_size,hidden_size]
      • numdirections:1or2
      • batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
      • hiddensize∈(0,8192]
    • Поддержка квантования
      • per-layer

Атрибуты

  • direction(extern):string
    • Задаёт направление вычисления LSTM.
    • forward: прямое направление LSTM.
    • reverse: обратное направление LSTM.
    • bidirectional: двунаправленное вычисление LSTM.
  • sequence_size(extern):int
    • Задаёт seqsize входа LSTM; без ограничений, рекомендуется выравнивание по 4.
  • hidden_size(extern):int
    • hiddensize блока LSTM; без ограничений, рекомендуется выравнивание по 8.
  • proj_size(extern):int
    • proj_size при projection; projsize∈[0,hiddensize].
    • Сейчас допускается только 0; projection пока не поддерживается.
  • input_forget(extern):int
    • Выбор варианта cifg:1(T) или 0(F). Сейчас допускается только 0; вариант пока не поддерживается.
  • has_projection(extern):int
    • Вариант projection:1(T) или 0(F). Сейчас допускается только 0; вариант пока не поддерживается.
  • input_layout(extern):int
    • Задаёт layout, соответствующий смыслу shape данного входа.
    • Необходимо задать указанный layout и фактические параметры оператора: batch_size, sequence_size, hidden_size.
    • snc: входной shape данного layout — [seqs,batches,input_size].
    • (sn)c: входной shape данного layout — [seqs*batches,input_size,1,1].
  • output_layout(extern):int
    • Задаёт layout, соответствующий смыслу shape данного выхода.
    • Необходимо задать указанный layout и фактические параметры оператора: batch_size, sequence_size, hidden_size, directions.
    • sbnc: выходной shape данного layout — [seqs,directions,batches,hidden_size].
    • (sn)c: выходной shape данного layout — [seqsbatches,directionsinput_size,1,1].

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:float(Tensor)
  • T3:int32(Tensor)
  • T4:float(Scalar)
  • T5:int(Scalar)

Прочие возможности

  • Совместная работа нескольких ядер: ещё не поддерживается.

Max

Вычисляет поэлементный максимум входных тензоров.

Входы

  • A:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.
  • B:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.

Выходы

  • C:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer/per-channel

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)

Прочие возможности

  • Совместная работа нескольких ядер: ещё не поддерживается.

Min

Вычисляет поэлементный минимум входных тензоров.

Входы

  • A:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.
  • B:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.

Выходы

  • C:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer/per-channel

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)

Прочие возможности

  • Совместная работа нескольких ядер: ещё не поддерживается.

Mul

Выполняет поэлементное бинарное умножение (C=A*B) с многомерным расширением по правилам NumPy.

Входы

  • A:T1,T2
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.
  • B:T1,T2
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
    • Поддержка расширения размерностей
      • Поддерживается расширение по любой размерности.
      • Ограничения расширения совпадают с оператором Expand.

Выходы

  • C:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:float(constTensor)

MulRelu

Остальные описания совпадают с Mul.

  • Поддерживаемые типы данных: как у Mul.

Pad

По тензору данных (data), тензору величин заполнения в начале/конце осей (pads), режиму (mode) и константе (constant_value) создаёт дополненный тензор (output).

Входы

  • data:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
  • pads:T2
    • shape : [batch_begin, channel_begin, height_begin, width_begin, batch_end, channel_end,height_end,width_end]
  • constant_value(optional):T3
    • shape:[1]
    • Поддержка квантования
      • per-layer

Выходы

  • output:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:int64(Tensor)
  • T3:float(Scalar),int8(Scalar),float16(Scalar)

Атрибуты

  • mode:string (по умолчанию constant)
    • Поддерживаемые режимы: constant,reflect.
      • constant: без ограничений.
      • reflectchannel∈(0,8192],height∈(0,8192],width∈(0,8176]

Прочие возможности

  • Совместная работа нескольких ядер: ещё не поддерживается.

MaxPool

MaxPool получает входной тензор X и выполняет максимальный пулинг согласно размеру ядра, шагу и длине pad. Для подмножеств входного тензора, заданных ядром, вычисляется максимум, а данные с пониженной дискретизацией помещаются в выходной тензор Y для дальнейшей обработки. Пространственный размер выхода зависит от явного заполнения (pads) либо автоматического (auto_pad). Здесь используется только явное заполнение.

Входы

  • input:T1
    • shape:[batch,channel,height,width]
      • channel∈(0,8192]
      • height∈(0,8192]
      • width∈(0,8192]

Выходы

  • output:T1
    • shape:[batch,channel,height,width]

Атрибуты

  • kernel_shape:int64(kernel_h,kernel_w)
    • kernel_h∈(0,7]
    • kernel_w∈(0,7]
  • auto_pad:string
    • Способ pad: поддерживается только NOTSET.
  • ceil_mode:int64
    • Вычисление выходного shape через ceil или floor: не поддерживается.
  • strides:int64(strides_h,strides_w)
    • strides_h∈(0,8]
    • strides_w∈(0,8]
  • count_include_pad:int64[]
    • count_include_pad, учитывать ли значения pad при вычислении:1.
  • pad:int64(pad_top,pad_left,pad_bottom,pad_right)
    • pad_top∈[0,7]
    • pad_left∈[0,7]
    • pad_bottom∈[0,7]
    • pad_right∈[0,7]
  • storage_order:int64
    • Приоритетный порядок хранения:0.

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:float(Tensor)
  • T3:float(Scalar)

GlobalMaxPool

GlobalMaxPool применяет максимальный пулинг к значениям каждого канала входного тензора X. Это эквивалентно MaxPool с kernel_shape, равным пространственным размерам input.

Входы

  • input:T1
    • shape:[batch,channel,height,width]
      • channel∈(0,8192]
      • height∈(1,7]
      • width∈(1,7]

Выходы

  • output:T1
    • shape:[batch,channel,height,width]

Атрибуты

  • kernel_shape:int64(kernel_h,kernel_w)
    • kernel_h∈(0,7]
    • kernel_w∈(0,7]
  • auto_pad:string
    • Способ pad: поддерживается только NOTSET.
  • ceil_mode:int64
    • Вычисление выходного shape через ceil или floor: не поддерживается.
  • strides:int64(strides_h,strides_w)
    • strides_h∈(0,8]
    • strides_w∈(0,8]
  • count_include_pad:int64[]
    • count_include_pad, учитывать ли значения pad при вычислении:1.
  • pad:int64(pad_top,pad_left,pad_bottom,pad_right)
    • pad_top∈[0,7]
    • pad_left∈[0,7]
    • pad_bottom∈[0,7]
    • pad_right∈[0,7]

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:float(Tensor)
  • T3:float(Scalar)

AveragePool

AveragePool получает входной тензор X и выполняет усредняющий пулинг согласно размеру ядра, шагу и длине pad. Для подмножеств входного тензора, заданных ядром, вычисляется среднее всех значений, а данные с пониженной дискретизацией помещаются в выходной тензор Y для дальнейшей обработки. Пространственный размер выхода зависит от явного заполнения (pads) либо автоматического (auto_pad). Здесь используется только явное заполнение.

Входы

  • input:T1
    • shape:[batch,channel,height,width]
      • channel∈(0,8192]
      • height∈(0,8192]
      • width∈(0,8192]

Выходы

  • output:T1
    • shape:[batch,channel,height,width]

Атрибуты

  • kernel_shape:int64(kernel_h,kernel_w)
    • kernel_h∈(0,7]
    • kernel_w∈(0,7]
  • auto_pad:string
    • Способ pad: поддерживается только NOTSET.
  • ceil_mode:int64
    • Вычисление выходного shape через ceil или floor: не поддерживается.
  • strides:int64(strides_h,strides_w)
    • strides_h∈(0,8]
    • strides_w∈(0,8]
  • count_include_pad:int64[]
    • count_include_pad, учитывать ли значения pad при вычислении:1.
  • pad:int64(pad_top,pad_left,pad_bottom,pad_right)
    • pad_top∈[0,7]
    • pad_left∈[0,7]
    • pad_bottom∈[0,7]
    • pad_right∈[0,7]

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:float(Tensor)
  • T3:float(Scalar)

GlobalAveragePool

GlobalAveragePool применяет усредняющий пулинг к значениям каждого канала входного тензора X. Это эквивалентно AveragePool с kernel_shape, равным пространственным размерам входного тензора.

Входы*

  • input:T1
    • shape:[batch,channel,height,width]
      • channel∈(0,8192]
      • height∈(0,7]
      • width∈(0,7]

Выходы

  • output:T1
    • shape:[batch,channel,height,width]

Атрибуты

  • kernel_shape:int64(kernel_h,kernel_w)
    • kernel_h∈(0,7]
    • kernel_w∈(0,7]
  • auto_pad:string
    • Способ pad: поддерживается только NOTSET.
  • ceil_mode:int64
    • Вычисление выходного shape через ceil или floor: не поддерживается.
  • strides:int64(strides_h,strides_w)
    • strides_h∈(0,8]
    • strides_w∈(0,8]
  • count_include_pad:int64[]
    • count_include_pad, учитывать ли значения pad при вычислении:1.
  • pad:int64(pad_top,pad_left,pad_bottom,pad_right)
    • pad_top∈[0,7]
    • pad_left∈[0,7]
    • pad_bottom∈[0,7]
    • pad_right∈[0,7]

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:float(Tensor)
  • T3:float(Scalar)

Pow

Возведение в степень Z = X^Y: принимает входные данные (тензор) и показатели степени и формирует один выходной тензор.

Входы

  • X:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer
  • Y:T2
    • shape:[1]
      • В настоящее время поддерживаются только 0, 1, 2, 3, 0.5, -0.5.

Выходы

  • Z:T1
    • shape:[batch,channel,height,width]
    • Поддержка квантования
      • per-layer

Ограничения типов данных

  • T1:int8(Tensor),float16(Tensor)
  • T2:int8(Tensor),int32(Tensor),int64(Tensor),float16(Tensor),float(Tensor)

Прочие возможности

  • Совместная работа нескольких ядер: ещё не поддерживается.

Другие статьи по теме → · Учебные маршруты →