Files
ANSLibs/OpenVINO/python/openvino/opset3/ops.pyi

365 lines
18 KiB
Python
Raw Normal View History

# type: ignore
from __future__ import annotations
from builtins import list as TensorShape
from functools import partial
from openvino._pyopenvino import Node
from openvino._pyopenvino import Shape
from openvino._pyopenvino.op import Constant
from openvino._pyopenvino.op import Parameter
from openvino.utils.decorators import binary_op
from openvino.utils.decorators import nameable_op
from openvino.utils.decorators import unary_op
from openvino.utils.input_validation import assert_list_of_ints
from openvino.utils.input_validation import check_valid_attributes
from openvino.utils.input_validation import is_non_negative_value
from openvino.utils.input_validation import is_positive_value
from openvino.utils.node_factory import NodeFactory
from openvino.utils.node_factory import _get_node_factory
from openvino.utils.types import as_node
from openvino.utils.types import as_nodes
from openvino.utils.types import get_dtype
from openvino.utils.types import get_element_type
from openvino.utils.types import get_element_type_str
from openvino.utils.types import make_constant_node
import functools
import numpy as np
import openvino._pyopenvino
import typing
"""
Factory functions for all openvino ops.
"""
__all__ = ['Constant', 'Node', 'NodeFactory', 'NodeInput', 'NumericData', 'NumericType', 'Parameter', 'ScalarData', 'Shape', 'TensorShape', 'as_node', 'as_nodes', 'assert_list_of_ints', 'assign', 'binary_op', 'broadcast', 'bucketize', 'check_valid_attributes', 'cum_sum', 'embedding_bag_offsets_sum', 'embedding_bag_packed_sum', 'embedding_segments_sum', 'extract_image_patches', 'get_dtype', 'get_element_type', 'get_element_type_str', 'gru_cell', 'is_non_negative_value', 'is_positive_value', 'make_constant_node', 'nameable_op', 'non_max_suppression', 'non_zero', 'np', 'partial', 'read_value', 'rnn_cell', 'roi_align', 'scatter_elements_update', 'scatter_update', 'shape_of', 'shuffle_channels', 'topk', 'unary_op']
def assign(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which produces the Assign operation.
:param new_value: Node producing a value to be assigned to a variable.
:param variable_id: Id of a variable to be updated.
:param name: Optional name for output node.
:return: Assign node
"""
def broadcast(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Create a node which broadcasts the input node's values along specified axes to a desired shape.
:param data: The node with input tensor data.
:param target_shape: The node with a new shape we want to broadcast tensor to.
:param axes_mapping: The node with a axis positions (0-based) in the result
that are being broadcast.
:param broadcast_spec: The type of broadcasting that specifies mapping of input tensor axes
to output shape axes. Range of values: NUMPY, EXPLICIT, BIDIRECTIONAL.
:param name: Optional new name for output node.
:return: New node with broadcast shape.
"""
def bucketize(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which produces the Bucketize operation.
:param data: Input data to bucketize
:param buckets: 1-D of sorted unique boundaries for buckets
:param output_type: Output tensor type, "i64" or "i32", defaults to i64
:param with_right_bound: indicates whether bucket includes the right or left
edge of interval. default true = includes right edge
:param name: Optional name for output node.
:return: Bucketize node
"""
def cum_sum(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Construct a cumulative summation operation.
:param arg: The tensor to be summed.
:param axis: zero dimension tensor specifying axis position along which sum will be performed.
:param exclusive: if set to true, the top element is not included
:param reverse: if set to true, will perform the sums in reverse direction
:return: New node performing the operation
"""
def embedding_bag_offsets_sum(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which performs sums of bags of embeddings without the intermediate embeddings.
:param emb_table: Tensor containing the embedding lookup table.
:param indices: Tensor with indices.
:param offsets: Tensor containing the starting index positions of each bag in indices.
:param per_sample_weights: Tensor with weights for each sample.
:param default_index: Scalar containing default index in embedding table to fill empty bags.
:param name: Optional name for output node.
:return: The new node which performs EmbeddingBagOffsetsSum
"""
def embedding_bag_packed_sum(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return an EmbeddingBagPackedSum node.
EmbeddingSegmentsSum constructs an output tensor by replacing every index in a given
input tensor with a row (from the weights matrix) at that index
:param emb_table: Tensor containing the embedding lookup table.
:param indices: Tensor with indices.
:param per_sample_weights: Weights to be multiplied with embedding table.
:param name: Optional name for output node.
:return: EmbeddingBagPackedSum node
"""
def embedding_segments_sum(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return an EmbeddingSegmentsSum node.
EmbeddingSegmentsSum constructs an output tensor by replacing every index in a given
input tensor with a row (from the weights matrix) at that index
:param emb_table: Tensor containing the embedding lookup table.
:param indices: Tensor with indices.
:param segment_ids: Tensor with indices into the output Tensor
:param num_segments: Tensor with number of segments.
:param default_index: Scalar containing default index in embedding table to fill empty bags.
:param per_sample_weights: Weights to be multiplied with embedding table.
:param name: Optional name for output node.
:return: EmbeddingSegmentsSum node
"""
def extract_image_patches(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which produces the ExtractImagePatches operation.
:param image: 4-D Input data to extract image patches.
:param sizes: Patch size in the format of [size_rows, size_cols].
:param strides: Patch movement stride in the format of [stride_rows, stride_cols]
:param rates: Element seleciton rate for creating a patch.
:param auto_pad: Padding type.
:param name: Optional name for output node.
:return: ExtractImagePatches node
"""
def gru_cell(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Perform GRUCell operation on the tensor from input node.
GRUCell represents a single GRU Cell that computes the output
using the formula described in the paper: https://arxiv.org/abs/1406.1078
Note this class represents only single *cell* and not whole *layer*.
:param X: The input tensor with shape: [batch_size, input_size].
:param initial_hidden_state: The hidden state tensor at current time step with shape:
[batch_size, hidden_size].
:param W: The weights for matrix multiplication, gate order: zrh.
Shape: [3*hidden_size, input_size].
:param R: The recurrence weights for matrix multiplication.
Shape: [3*hidden_size, hidden_size].
:param B: The sum of biases (weight and recurrence).
For linear_before_reset set True the shape is [4*hidden_size].
Otherwise the shape is [3*hidden_size].
:param hidden_size: The number of hidden units for recurrent cell.
Specifies hidden state size.
:param activations: The vector of activation functions used inside recurrent cell.
:param activation_alpha: The vector of alpha parameters for activation functions in
order respective to activation list.
:param activation_beta: The vector of beta parameters for activation functions in order
respective to activation list.
:param clip: The value defining clipping range [-clip, clip] on input of
activation functions.
:param linear_before_reset: Flag denotes if the layer behaves according to the modification
of GRUCell described in the formula in the ONNX documentation.
:param name: Optional output node name.
:return: The new node performing a GRUCell operation on tensor from input node.
"""
def non_max_suppression(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which performs NonMaxSuppression.
:param boxes: Tensor with box coordinates.
:param scores: Tensor with box scores.
:param max_output_boxes_per_class: Tensor Specifying maximum number of boxes
to be selected per class.
:param iou_threshold: Tensor specifying intersection over union threshold
:param score_threshold: Tensor specifying minimum score to consider box for the processing.
:param box_encoding: Format of boxes data encoding.
:param sort_result_descending: Flag that specifies whenever it is necessary to sort selected
boxes across batches or not.
:param output_type: Output element type.
:return: The new node which performs NonMaxSuppression
"""
def non_zero(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return the indices of the elements that are non-zero.
:param data: Input data.
:param output_type: Output tensor type.
:return: The new node which performs NonZero
"""
def read_value(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which produces the Assign operation.
:param init_value: Node producing a value to be returned instead of an unassigned variable.
:param variable_id: Id of a variable to be read.
:param name: Optional name for output node.
:return: ReadValue node
"""
def rnn_cell(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Perform RNNCell operation on tensor from input node.
It follows notation and equations defined as in ONNX standard:
https://github.com/onnx/onnx/blob/master/docs/Operators.md#RNN
Note this class represents only single *cell* and not whole RNN *layer*.
:param X: The input tensor with shape: [batch_size, input_size].
:param initial_hidden_state: The hidden state tensor at current time step with shape:
[batch_size, hidden_size].
:param W: The weight tensor with shape: [hidden_size, input_size].
:param R: The recurrence weight tensor with shape: [hidden_size,
hidden_size].
:param B: The sum of biases (weight and recurrence) with shape: [hidden_size].
:param hidden_size: The number of hidden units for recurrent cell.
Specifies hidden state size.
:param activations: The vector of activation functions used inside recurrent cell.
:param activation_alpha: The vector of alpha parameters for activation functions in
order respective to activation list.
:param activation_beta: The vector of beta parameters for activation functions in order
respective to activation list.
:param clip: The value defining clipping range [-clip, clip] on input of
activation functions.
:param name: Optional output node name.
:return: The new node performing a RNNCell operation on tensor from input node.
"""
def roi_align(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which performs ROIAlign.
:param data: Input data.
:param rois: RoIs (Regions of Interest) to pool over.
:param batch_indices: Tensor with each element denoting the index of
the corresponding image in the batch.
:param pooled_h: Height of the ROI output feature map.
:param pooled_w: Width of the ROI output feature map.
:param sampling_ratio: Number of bins over height and width to use to calculate
each output feature map element.
:param spatial_scale: Multiplicative spatial scale factor to translate ROI coordinates.
:param mode: Method to perform pooling to produce output feature map elements.
:return: The new node which performs ROIAlign
"""
def scatter_elements_update(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which produces a ScatterElementsUpdate operation.
:param data: The input tensor to be updated.
:param indices: The tensor with indexes which will be updated.
:param updates: The tensor with update values.
:param axis: The axis for scatter.
:return: ScatterElementsUpdate node
ScatterElementsUpdate creates a copy of the first input tensor with updated elements
specified with second and third input tensors.
For each entry in `updates`, the target index in `data` is obtained by combining
the corresponding entry in `indices` with the index of the entry itself: the
index-value for dimension equal to `axis` is obtained from the value of the
corresponding entry in `indices` and the index-value for dimension not equal
to `axis` is obtained from the index of the entry itself.
"""
def scatter_update(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which produces a ScatterUpdate operation.
ScatterUpdate sets new values to slices from data addressed by indices.
:param data: The input tensor to be updated.
:param indices: The tensor with indexes which will be updated.
:param updates: The tensor with update values.
:param axis: The axis at which elements will be updated.
:return: ScatterUpdate node
"""
def shape_of(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which produces a tensor containing the shape of its input data.
:param data: The tensor containing the input data.
:param output_type: Output element type.
:return: ShapeOf node
"""
def shuffle_channels(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Perform permutation on data in the channel dimension of the input tensor.
:param data: The node with input tensor.
:param axis: Channel dimension index in the data tensor.
A negative value means that the index should be calculated
from the back of the input data shape.
:param group: The channel dimension specified by the axis parameter
should be split into this number of groups.
:param name: Optional output node name.
:return: The new node performing a permutation on data in the channel dimension
of the input tensor.
The operation is the equivalent with the following transformation of the input tensor
`data` of shape [N, C, H, W]:
`data_reshaped` = reshape(`data`, [N, group, C / group, H * W])
`data_transposed` = transpose(`data_reshaped`, [0, 2, 1, 3])
`output` = reshape(`data_transposed`, [N, C, H, W])
For example:
.. code-block:: python
Inputs: tensor of shape [1, 6, 2, 2]
data = [[[[ 0., 1.], [ 2., 3.]],
[[ 4., 5.], [ 6., 7.]],
[[ 8., 9.], [10., 11.]],
[[12., 13.], [14., 15.]],
[[16., 17.], [18., 19.]],
[[20., 21.], [22., 23.]]]]
axis = 1
groups = 3
Output: tensor of shape [1, 6, 2, 2]
output = [[[[ 0., 1.], [ 2., 3.]],
[[ 8., 9.], [10., 11.]],
[[16., 17.], [18., 19.]],
[[ 4., 5.], [ 6., 7.]],
[[12., 13.], [14., 15.]],
[[20., 21.], [22., 23.]]]]
"""
def topk(*args, **kwargs) -> openvino._pyopenvino.Node:
"""
Return a node which performs TopK.
:param data: Input data.
:param k: K.
:param axis: TopK Axis.
:param mode: Compute TopK largest ('max') or smallest ('min')
:param sort: Order of output elements (sort by: 'none', 'index' or 'value')
:param index_element_type: Type of output tensor with indices.
:return: The new node which performs TopK (both indices and values)
"""
NodeInput: typing._UnionGenericAlias # value = typing.Union[openvino._pyopenvino.Node, int, float, numpy.ndarray]
NumericData: typing._UnionGenericAlias # value = typing.Union[int, float, numpy.ndarray]
NumericType: typing._UnionGenericAlias # value = typing.Union[type, numpy.dtype]
ScalarData: typing._UnionGenericAlias # value = typing.Union[int, float]
_get_node_factory_opset3: functools.partial # value = functools.partial(<function _get_node_factory at memory_address>, 'opset3')