OptionalGetElement - version 15#

This page documents version 15 of operator OptionalGetElement. See OptionalGetElement for the latest version (since version 18).

  • Domain: ai.onnx

  • Since version: 15

Outputs the element in the optional-type input. It is an error if the input value does not have an element and the behavior is undefined in this case.

Inputs

  • input (O): The optional input.

Outputs

  • output (V): Output element in the optional input.

Type Constraints

  • O: Constrain input type to optional tensor and optional sequence types. Allowed types: optional(seq(tensor(bool))), optional(seq(tensor(complex128))), optional(seq(tensor(complex64))), optional(seq(tensor(double))), optional(seq(tensor(float))), optional(seq(tensor(float16))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(int8))), optional(seq(tensor(string))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(uint8))), optional(tensor(bool)), optional(tensor(complex128)), optional(tensor(complex64)), optional(tensor(double)), optional(tensor(float)), optional(tensor(float16)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(int8)), optional(tensor(string)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(uint8)).

  • V: Constrain output type to all tensor or sequence types. Allowed types: seq(tensor(bool)), seq(tensor(complex128)), seq(tensor(complex64)), seq(tensor(double)), seq(tensor(float)), seq(tensor(float16)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(int8)), seq(tensor(string)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(uint8)), tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8).

Examples#

test_cc_optional_get_element_optional_sequence

Node:
  OptionalGetElement(opt_seq) -> (output_sequence)
Inputs:
  opt_seq: shape=(4,), dtype=int32
    [1, 2, 3, 4]

Outputs:
  output_sequence: sequence(len=1), element_shape=(4,), element_dtype=int32
    [
      [0] [1, 2, 3, 4]
    ]

test_cc_optional_get_element_optional_tensor

Node:
  OptionalGetElement(opt_value) -> (output)
Inputs:
  opt_value: shape=(2, 3), dtype=float32
    [[-1.  ,  0.  ,  1.5 ],
     [-2.25,  3.5 , -4.75]]

Outputs:
  output: shape=(2, 3), dtype=float32
    [[-1.  ,  0.  ,  1.5 ],
     [-2.25,  3.5 , -4.75]]