enum ngraph::op::AutoBroadcastType

Overview

Specifies the algorithm to use for implicit broadcasting of a tensor to align with another tensor. More…

#include <attr_types.hpp>

enum AutoBroadcastType
{
    NONE     = 0,
    EXPLICIT = NONE,
    NUMPY,
    PDPD,
};

Detailed Documentation

Specifies the algorithm to use for implicit broadcasting of a tensor to align with another tensor.

NONE - No implicit broadcasting of tensor NUMPY - Numpy-style implicit broadcasting (https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html) Right-align dimensions of the two tensors, with missing dimensions treated as size 1 dimensions. After alignment, for each dimension, their sizes should either match or one of them should be of size 1. Size 1 dimension will be implicitly broadcast to match the other size.

E.g., A: Shape(2, 1, 6) B: Shape( 3, 1) Result: Shape(2, 3, 6)

A: Shape(2, 1, 6)
B: Shape(   3, 1)

Result: Shape(2, 3, 6) PDPD - PaddlePaddle-style implicit broadcasting (https://github.com/PaddlePaddle/Paddle/blob/release/1.5/paddle/ fluid/operators/elementwise/elementwise_op.h#L126) Broadcast B to match the shape of A, where axis is the start dimension index to align B with A. If axis is -1 (default), i axis = rank(A) - rank(B). The trailing dimensions of size 1 for B will be ignored.

E.g., A: Shape(2, 3, 4, 5) B: Shape( 3, 4 ) with axis =1 Result: Shape(2, 3, 4, 5)

A: Shape(2, 3, 4, 5)
B: Shape(   3, 1   ) with axis = 1

Result: Shape(2, 3, 4, 5)

TODO: Add more implicit broadcast modes used by frameworks