Developer Guide and Reference

  • 2022.1
  • 04/11/2022
  • Public Content
Contents

Resampling

General

The resampling primitive computes forward or backward resampling operation on 1D, 2D, or 3D spatial data. Resampling performs spatial scaling of original tensor using one of the supported interpolation algorithms:
  • Nearest Neighbor
  • Linear (or Bilinear for 2D spatial tensor, Trilinear for 3D spatial tensor).
Resampling operation is defined by the source tensor and scaling factors in each spatial dimension. Upsampling and downsampling are the alternative terms for resampling that are used when all scaling factors are greater (upsampling) or less (downsampling) than one.
The resampling operation is defined by the following formulas. We show formulas only for 2D spatial data which are straightforward to generalize to cases of higher and lower dimensions. Variable names follow the standard Naming Conventions.
Let LaTex Math image. and LaTex Math image. be LaTex Math image. and LaTex Math image. tensors respectively. Let LaTex Math image. and LaTex Math image. define scaling factors in each spatial dimension.
The following formulas show how oneDNN computes resampling for nearest neighbor and bilinear interpolation methods. To further simplify the formulas, we assume the following: LaTex Math image.
Same assumptions apply for LaTex Math image.. Definitions of LaTex Math image. and LaTex Math image. are provided below with a correspondent algorithm.
Forward
Nearest Neighbor Resampling
LaTex Math image.
where
  • LaTex Math image.,
  • LaTex Math image..
Bilinear Resampling
LaTex Math image.
where
  • LaTex Math image.,
  • LaTex Math image.,
  • LaTex Math image.,
  • LaTex Math image.,
  • LaTex Math image.,
  • LaTex Math image..
Difference Between Forward Training and Forward Inference
There is no difference between the dnnl_forward_training and dnnl_forward_inference propagation kinds.
Backward
The backward propagation computes LaTex Math image. based on LaTex Math image..

Execution Arguments

When executed, the inputs and outputs should be mapped to an execution argument index as specified by the following table.
Primitive input/output
Execution argument index
LaTex Math image.
DNNL_ARG_SRC
LaTex Math image.
DNNL_ARG_DST
LaTex Math image.
DNNL_ARG_DIFF_SRC
LaTex Math image.
DNNL_ARG_DIFF_DST
LaTex Math image.

Implementation Details

General Notes
  1. Resampling implementation supports data with arbitrary data tag (nchw, nhwc, nChw16c, etc.) but memory tags for
    src
    and
    dst
    are expected to be the same. Resampling primitive supports
    dst
    and
    diff_src
    memory tag dnnl::memory::format_tag::any and can define destination format based on source format.
  2. Resampling descriptor can be created by specifying the source and destination memory descriptors, only the source descriptor and floating point factors, or the source and destination memory descriptors and factors. In case when user does not provide the destination descriptor, the destination dimensions are deduced using the factors: LaTex Math image..
Implementation of resampling algorithm uses factors as defined by the relation LaTex Math image. that do not necessarily equal to the ones passed by the user.
Data Types
Resampling primitive supports the following combination of data types for source and destination memory objects:
Propagation
Source
Destination
forward / backward
f32, s32, bf16, s8, u8
f32, s32, bf16, s8, u8
forward
f16
f16
Post-Ops and Attributes
The following attributes are supported:
Type
Operation
Description
Restrictions
Post-op
Adds the operation result to the destination tensor instead of overwriting it.
Post-op
Applies an Eltwise operation to the result.
Post-op
Applies a Binary operation to the result
General binary post-op restrictions

Implementation Limitations

  1. No primitive specific limitations. Refer to Data Types for limitations related to data types support.

Performance Tips

N/A

Example

This C++ API example demonstrates how to create and execute a Resampling primitive in forward training propagation mode.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.