Rockchip · AI & Linux Hub

AI-инференс

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

RKNN2 V2.5.0 · RK2118:Основы и свёртки · Полные параметры и ограничения операторов по оригиналу V2.5.0.

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

Этот справочник платформ 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 278–285; EN 286–293.

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 · Ввод/вывод модели, выравнивание и ограничения свёрток

RK2118

Add

Выполняет поэлементное бинарное сложение (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)

AddRelu

Объединённое вычисление Add и Relu, C=Relu(A+B).

Входы

  • Как у Add.

Выходы

  • Как у Add.

BatchNormalization

Выполняет пакетную нормализацию входного тензора согласно https://arxiv.org/abs/1502.03167.

Входы

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

Выходы

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

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

  • T1:float16(Tensor)

Атрибуты

  • epsilon: float (значение по умолчанию = 1e-5)
    • Вещественное число, добавляемое при делении на стандартное отклонение для предотвращения деления на 0.
    • epsilon∈(0,∞]
  • momentum:float
    • Параметр скользящего среднего при обучении.

Concat

Объединяет последовательность векторов в один вдоль axis. Размеры всех векторов вне axis должны совпадать.

Входы

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

Выходы

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

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

  • T:float16(Tensor)

Атрибуты

  • axisint64
    • axis∈{0,1,2,3}

Свёртка

Свёртка

Входы

  • input_tensor:T1
    • shape:[batch,channel,height,width]
      • width: при dilated_kernel_h>1 требуется width<16383. Дополнительные ограничения ширины входа первого слоя см. в описании входов модели.
    • Поддержка квантования
      • per-layer
  • weight:T1
    • shape:[output_channel,input_channel,kernel_h,kernel_w]
      • kernel_h∈[1,31]
      • kernel_w∈[1,31]
    • Поддержка квантования
      • per-layer
      • per-channel

Выходы

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

Атрибуты

  • strides:int(strides_h,strides_w)
    • stride_h∈[1,7]
    • stride_w∈[1,7]
  • pads:int(pads_top,pads_left,pads_bottom,pads_right)
    • pads_top∈[0,15]
    • pads_left∈[0,15]
    • pads_bottom∈[0,15]
    • pads_right∈[0,15]
  • group:int
  • dilations:int(dilations_h,dilations_w)
    • dilations_h∈[1,31]
    • dilations_w∈[1,31]

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

  • T1:float16(Tensor)

Depthwise Convolution

Разделимая свёртка по глубине

Входы

  • input_tensor:T1
    • shape:[batch,channel,height,width]
      • width: при dilated_kernel_h>1 требуется width<16383. Дополнительные ограничения ширины входа первого слоя см. в описании входов модели.
    • Поддержка квантования
      • per-layer
  • weight:T1
    • shape:[output_channel,input_channel,kernel_h,kernel_w]
      • kernel_h∈[1,8]
      • kernel_w∈[1,8]
    • Поддержка квантования
      • per-layer
      • per-channel

Выходы

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

Атрибуты

  • strides:int(strides_h,strides_w)
    • stride_h∈[1,7]
    • stride_w∈[1,7]
  • pads:int(pads_top,pads_left,pads_bottom,pads_right)
    • pads_top∈[0,15]
    • pads_left∈[0,15]
    • pads_bottom∈[0,15]
    • pads_right∈[0,15]
  • group:int
  • dilations:int(dilations_h,dilations_w)
    • dilations_h∈[1,32]
    • dilations_w∈[1,32]

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

  • T1:float16(Tensor)

ConvolutionRelu

Объединённое вычисление Convolution и Relu, Output=Relu(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionClip

Объединённое вычисление Convolution и Clip, Output=Clip(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionPRelu/LeakyRelu

Объединённое вычисление Convolution и PRelu/LeakyRelu, Output = PRelu(Conv(Input)) или Output = LeakyRelu(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionAdd

Объединённое вычисление Convolution и Add, Output=Add(Conv(Input0),Input1). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionSigmoid

Объединённое вычисление Convolution и Sigmoid, Output=Sigmoid(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionTanh

Объединённое вычисление Convolution и Tanh, Output=Tanh(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionSoftplus

Объединённое вычисление Convolution и Softplus, Output=Softplus(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionHardSigmoid

Объединённое вычисление Convolution и HardSigmoid, Output=HardSigmoid(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionHardSwish

Объединённое вычисление Convolution и HardSwish, Output=HardSwish(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionElu

Объединённое вычисление Convolution и Elu, Output=Elu(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionSwish

Объединённое вычисление Convolution и Swish, Output=Swish(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvolutionMish

Объединённое вычисление Convolution и Mish, Output=Mish(Conv(Input)). Описание и ограничения спецификации совпадают с Convolution.

ConvTranspose

Транспонированная свёртка

Входы

  • input_tensor:T1
    • shape:[batch,channel,height,width]
      • width: при dilated_kernel_h>1 требуется width<16383. Дополнительные ограничения ширины входа первого слоя см. в описании входов модели.
  • Поддержка квантования
    • per-layer
  • weight:T1
    • shape:[output_channel,input_channel,kernel_h,kernel_w]
      • kernel_h∈[1,31]
      • kernel_w∈[1,31]
    • Поддержка квантования
      • per-layer
      • per-channel

Выходы

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

Атрибуты

  • strides:int(strides_h,strides_w)
    • stride_h∈[1,8]
    • stride_w∈[1,8]
  • pads:int(pads_top,pads_left,pads_bottom,pads_right). При задании pad не поддерживаются: kernel_hdilations_h-dilations_h-pads_top<0; kernel_wdilations_w-dilations_w-pads_left<0; stride_h(height-1)-pads_top+1<output_h; stride_w(width-1)-pads_left+1<output_w.
    • pads_top∈[0,15]
    • pads_left∈[0,15]
    • pads_bottom∈[0,15]
    • pads_right∈[0,15]
  • group:int
    • group: поддерживается только 1; num_output поддерживается тогда и только тогда, когда num_input=num_output.
  • dilations:int(dilations_h,dilations_w)
    • dilations_h∈[1,32]
    • dilations_w∈[1,32]
    • Если dilation не равно (1,1), поддерживается только kernel=(1,1).

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

  • T1:float16(Tensor)

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