module onnxrt.ops_cpu.op_roi_align#

Inheritance diagram of mlprodict.onnxrt.ops_cpu.op_roi_align

Short summary#

module mlprodict.onnxrt.ops_cpu.op_roi_align

Runtime operator.

source on GitHub



truncated documentation


RoiAlign ======== Region of Interest (RoI) align operation described in the [Mask R-CNN paper]( …



truncated documentation


Returns the list of arguments as well as the list of parameters with the default values (close to the signature). …


Returns the list of modified parameters.


Returns the list of optional arguments.


Returns the list of optional arguments.


Returns all parameters in a dictionary.



truncated documentation





Runtime operator.

source on GitHub

class mlprodict.onnxrt.ops_cpu.op_roi_align.RoiAlign(onnx_node, desc=None, **options)#

Bases: OpRun

Region of Interest (RoI) align operation described in the [Mask R-CNN paper]( RoiAlign consumes an input tensor X and region of interests (rois) to apply pooling across each RoI; it produces a 4-D tensor of shape (num_rois, C, output_height, output_width).

RoiAlign is proposed to avoid the misalignment by removing quantizations while converting from original image into feature map and from feature map into RoI feature; in each ROI bin, the value of the sampled locations are computed directly through bilinear interpolation.


  • coordinate_transformation_mode: Allowed values are ‘half_pixel’ and ‘output_half_pixel’. Use the value ‘half_pixel’ to pixel shift the input coordinates by -0.5 (the recommended behavior). Use the value ‘output_half_pixel’ to omit the pixel shift for the input (use this for a backward-compatible behavior). Default value is namecoordinatetransformationmodeshalfpixeltypeSTRING (STRING)

  • mode: The pooling method. Two modes are supported: ‘avg’ and ‘max’. Default is ‘avg’. Default value is namemodesavgtypeSTRING (STRING)

  • output_height: default 1; Pooled output Y’s height. Default value is nameoutputheighti1typeINT (INT)

  • output_width: default 1; Pooled output Y’s width. Default value is nameoutputwidthi1typeINT (INT)

  • sampling_ratio: Number of sampling points in the interpolation grid used to compute the output value of each pooled output bin. If > 0, then exactly sampling_ratio x sampling_ratio grid points are used. If == 0, then an adaptive number of grid points are used (computed as ceil(roi_width / output_width), and likewise for height). Default is 0. Default value is namesamplingratioi0typeINT (INT)

  • spatial_scale: Multiplicative spatial scale factor to translate ROI coordinates from their input spatial scale to the scale used when pooling, i.e., spatial scale of the input feature map X relative to the input image. E.g.; default is 1.0f. Default value is namespatialscalef1.0typeFLOAT (FLOAT)


  • X (heterogeneous)T1: Input data tensor from the previous operator; 4-D feature map of shape (N, C, H, W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data.

  • rois (heterogeneous)T1: RoIs (Regions of Interest) to pool over; rois is 2-D input of shape (num_rois, 4) given as [[x1, y1, x2, y2], …]. The RoIs’ coordinates are in the coordinate system of the input image. Each coordinate set has a 1:1 correspondence with the ‘batch_indices’ input.

  • batch_indices (heterogeneous)T2: 1-D tensor of shape (num_rois,) with each element denoting the index of the corresponding image in the batch.


  • Y (heterogeneous)T1: RoI pooled output, 4-D tensor of shape (num_rois, C, output_height, output_width). The r-th batch element Y[r-1] is a pooled feature map corresponding to the r-th RoI X[r-1].

Type Constraints

  • T1 tensor(float16), tensor(float), tensor(double): Constrain types to float tensors.

  • T2 tensor(int64): Constrain types to int tensors.


Onnx name: RoiAlign

This version of the operator has been available since version 16.

Runtime implementation: RoiAlign

__init__(onnx_node, desc=None, **options)#
_infer_shapes(X, rois, batch_indices)#

Should be overwritten.

source on GitHub

_run(X, rois, batch_indices, attributes=None, verbose=0, fLOG=None)#

Should be overwritten.

source on GitHub