Этот справочник платформ 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 79–97; EN 82–100.
Серия справочников операторов
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
- shape:[seq_length,batch_size,input_size]
- W:T1
- shape:[num_directions,4*hidden_size,input_size]
- inputsize∈(0,8192]
- hiddensize∈(0,8192]
- numdirections:1or2
- Поддержка квантования
- per-layer
- per-channel
- shape:[num_directions,4*hidden_size,input_size]
- R:T1
- shape:[num_directions,4*hidden_size,hidden_size]
- hiddensize∈(0,8192]
- numdirections:1or2
- Поддержка квантования
- per-layer
- per-channel
- shape:[num_directions,4*hidden_size,hidden_size]
- B:T2
- shape:[num_directions,8*hidden_size]
- hiddensize∈(0,8192]
- numdirections:1or2
- Поддержка квантования
- per-layer
- per-channel
- shape:[num_directions,8*hidden_size]
- sequence_lens:T3(optional)
- shape:[batch_size]
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- shape:[batch_size]
- initial_h:T1(optional)
- shape:[num_directions,batch_size,hidden_size]
- numdirections:1or2
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- hiddensize∈(0,8192]
- Поддержка квантования
- per-layer
- shape:[num_directions,batch_size,hidden_size]
Выходы
- 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
- shape:[seq_length,num_directions,batch_size,hidden_size]
- Y_h:T1(optional)
- shape:[num_directions,batch_size,hidden_size]
- numdirections:1or2
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- hiddensize∈(0,8192]
- Поддержка квантования
- per-layer
- shape:[num_directions,batch_size,hidden_size]
Атрибуты
- 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.
Прочие возможности
- Совместная работа нескольких ядер: ещё не поддерживается.
Hardmax
Входы
- input:T1
- shape:[batch,channel,height,width]
- axis=1, height∗width<16384;
- axis=3/-1, channel∗height<16384; также действуют ограничения спецификации transpose.
- shape:[batch,channel,height,width]
Выходы
- output:T1
- shape:[batch,channel,height,width]
Ограничения типов данных
- T1:int8(Tensor),float16(Tensor)
Атрибуты
- axis:int
- Ось hardmax: 1,3/-1, то есть направления channel и width.
Прочие возможности
- Совместная работа нескольких ядер: ещё не поддерживается.
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
- shape:[seq_length,batch_size,input_size]
- W:T1
- shape:[num_directions,4*hidden_size,input_size]
- inputsize∈(0,8192]
- hiddensize∈(0,8192]
- numdirections:1or2
- Поддержка квантования
- per-layer
- per-channel
- shape:[num_directions,4*hidden_size,input_size]
- R:T1
- shape:[num_directions,4*hidden_size,hidden_size]
- hiddensize∈(0,8192]
- numdirections:1or2
- Поддержка квантования
- per-layer
- per-channel
- shape:[num_directions,4*hidden_size,hidden_size]
- B:T2,T3
- shape:[num_directions,8*hidden_size]
- hiddensize∈(0,8192]
- numdirections:1or2
- Поддержка квантования
- per-layer
- per-channel
- shape:[num_directions,8*hidden_size]
- sequence_lens:T4,T5(optional)
- shape:[batch_size]
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- shape:[batch_size]
- initial_h:T1(optional)
- shape:[num_directions,batch_size,hidden_size]
- numdirections:1or2
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- hiddensize∈(0,8192]
- Поддержка квантования
- per-layer
- shape:[num_directions,batch_size,hidden_size]
- initial_c:T1(optional)
- shape:[num_directions,batch_size,hidden_size]
- numdirections:1or2
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- hiddensize∈(0,8192]
- Поддержка квантования
- per-layer
- shape:[num_directions,batch_size,hidden_size]
Выходы
- 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
- shape:[seq_length,num_directions,batch_size,hidden_size]
- Y_h:T1(optional)
- shape:[num_directions,batch_size,hidden_size]
- numdirections:1or2
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- hiddensize∈(0,8192]
- Поддержка квантования
- per-layer
- shape:[num_directions,batch_size,hidden_size]
- Y_c:T1(optional)
- shape:[num_directions,batch_size,hidden_size]
- numdirections:1or2
- batchsize∈(0,8192]; значения больше 1 должны быть кратны 4.
- hiddensize∈(0,8192]
- Поддержка квантования
- per-layer
- shape:[num_directions,batch_size,hidden_size]
Атрибуты
- 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 и Relu,C=Relu(A*B).
Входы
- Как у 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]
- Поддерживаемые режимы: constant,reflect.
Прочие возможности
- Совместная работа нескольких ядер: ещё не поддерживается.
MaxPool
MaxPool получает входной тензор X и выполняет максимальный пулинг согласно размеру ядра, шагу и длине pad. Для подмножеств входного тензора, заданных ядром, вычисляется максимум, а данные с пониженной дискретизацией помещаются в выходной тензор Y для дальнейшей обработки. Пространственный размер выхода зависит от явного заполнения (pads) либо автоматического (auto_pad). Здесь используется только явное заполнение.
Входы
- input:T1
- shape:[batch,channel,height,width]
- channel∈(0,8192]
- height∈(0,8192]
- width∈(0,8192]
- shape:[batch,channel,height,width]
Выходы
- 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∈(0,7]
- width∈(0,7]
- shape:[batch,channel,height,width]
Выходы
- 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]
- shape:[batch,channel,height,width]
Выходы
- 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]
- shape:[batch,channel,height,width]
Выходы
- 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.
- shape:[1]
Выходы
- 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)
Прочие возможности
- Совместная работа нескольких ядер: ещё не поддерживается.
