docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Supported LiteRT operators

    When you import a model, each LiteRT (formerly TensorFlow Lite) operator in the model graph becomes one or more Sentis layers. For more information, refer to How Sentis optimizes a model.

    Supported LiteRT operators

    The following table shows the LiteRT operators that Sentis supports. It also outlines the data types that Sentis supports for each backend type.

    Name Sentis operators Supported data types with BackendType.CPU Supported data types with BackendType.GPUCompute Supported data types with BackendType.GPUPixel Notes
    abs Abs float, int float, int float, int
    add Add float, int float, int float, int
    add_n Add float, int float, int float, int
    arg_max ArgMax float, int float, int float, int Dynamic dim input tensor is not supported
    arg_min ArgMin float, int float, int float, int Dynamic dim input tensor is not supported
    atan2 Atan2 float float float
    average_pool_2d AveragePool float float float
    batch_matmul MatMul float float* float
    bitwise_xor BitwiseXor int int int
    broadcast_args BroadcastArgs float, int float, int float, int
    broadcast_to Expand float, int float, int float, int
    cast Cast float, int float, int float, int
    ceil Ceil float float float
    concatenation Concat float, int float, int float, int
    conv_2d Conv float float* float
    conv_3d Conv float float* float
    conv_3d_transpose ConvTranspose float float float Dynamic output_shape input tensor is not supported.
    cos Cos float float float
    cumsum CumSum float, int float, int float, int
    depth_to_space DepthToSpace float, int float, int float, int
    depthwise_conv_2d Conv float float* float
    dequantize Identity float float float int type is not supported
    div Div float, int float, int float, int
    elu Elu float float float
    embedding_lookup Gather float, int float, int float, int
    equal Equal float, int float, int float, int
    exp Exp float float float
    expand_dims Unsqueeze float, int float, int float, int
    fill Expand float, int float, int float, int
    floor Floor float float float
    floor_div FloorDiv float, int float, int float, int
    floor_mod Mod float float float
    fully_connected MatMul float float* float
    gather Gather float, int float, int float, int
    gather_nd GatherND float, int float, int float, int
    gelu Gelu float float float
    greater Greater float, int float, int float, int
    greater_equal GreaterOrEqual float, int float, int float, int
    hard_swish HardSwish float float float
    l2_normalization ReduceSumSquare + Sqrt + Div float float* float
    l2_pool_2d Square + AveragePool + Sqrt float float float
    leaky_relu LeakyRelu float float float
    less Less float, int float, int float, int
    less_equal LessOrEqual float, int float, int float, int
    local_response_normalization LRN float Not supported Not supported
    log Log float float float
    log_softmax LogSoftmax float float float
    logical_and LogicalAnd int int int
    logical_not LogicalNot int int int
    logical_or LogicalOr int int int
    logistic Sigmoid float float float
    max_pool_2d MaxPool float float float
    maximum Max float, int float, int float, int
    mean ReduceMean float float float Reduction over an axis of length 0 is not supported. int type is not supported.
    minimum Min float, int float, int float, int
    mirror_pad Pad float, int float, int float, int
    mul Mul float, int float, int float, int
    multinomial Multinomial float float float Dynamic num_samples input tensor is not supported
    neg Neg float, int float, int float, int
    not_equal NotEqual float, int float, int float, int
    one_hot OneHot float, int float, int float, int
    pack Unsqueeze + Concat float, int float, int float, int
    pad Pad float, int float, int float, int
    padv2 Pad float, int float, int float, int
    pow Pow float, int float, int float, int
    prelu PRelu float float float
    random_standard_normal RandomNormal float float float
    random_uniform RandomUniform float float float
    range Range float, int float, int float, int
    rank Shape + Size - - - The operator returns a CPU tensor without downloading the input tensor
    reduce_all ReduceMin float, int float*, int* float, int
    reduce_any ReduceMax float, int float*, int* float, int
    reduce_max ReduceMax float, int float*, int* float, int
    reduce_min ReduceMin float, int float*, int* float, int
    reduce_prod ReduceProd float, int float*, int* float, int
    relu Relu float float float
    relu6 Relu6 float float float
    relu_0_to_1 Clip float float float
    relu_n1_to_1 Clip float float float
    reshape Reshape float, int float, int float, int
    resize_bilinear Resize float float float
    resize_nearest_neighbor Resize float float float
    reverse_v2 Slice float, int float, int float, int
    round Round float float float
    rsqrt Rsqrt float float float
    scatter_nd ScatterND float, int float, int float, int
    select Where float, int float, int float, int
    select_v2 Where float, int float, int float, int
    shape Shape - - - The operator returns a CPU tensor without downloading the input tensor
    sign Sign float, int float, int float, int
    sin Sin float float float
    slice Slice float, int float, int float, int Dynamic begin and size input tensors are not supported
    softmax Softmax float float float
    space_to_depth SpaceToDepth float, int float, int float, int
    sparse_to_dense Expand + ScatterND float, int float, int float, int indices input tensor must have a rank greater than 0
    split Split float, int float, int float, int Dynamic split_dim input tensor is not supported
    split_v Split float, int float, int float, int Dynamic size_split and split_dim input tensors are not supported
    sqrt Sqrt float float float
    square Square float, int float, int float, int
    squared_difference Sub + Square float, int float, int float, int
    squeeze Squeeze float, int float, int float, int
    strided_slice Slice float, int float, int float, int The offset and ellipsis_mask attributes are not supported. Dynamic begin, end, and strides input tensors are not supported for masked slices.
    sub Sub float, int float, int float, int
    sum ReduceSum float, int float, int float, int
    tanh Tanh float float float
    tile Tile float, int float, int float, int
    topk_v2 TopK float, int float, int Not supported
    transpose Transpose float, int float, int float, int Dynamic perm input tensor is not supported
    transpose_conv ConvTranspose float float* float Supports 1D, 2D or 3D convolutions. Dynamic output_shape input tensor is not supported.
    unpack Select float, int float, int float, int
    where NonZero + Transpose float, int float, int float, int
    zeros_like Shape + ConstantOfShape float, int float, int float, int

    * Sentis uses DirectML to accelerate these operators on supported hardware.

    Additional layers

    LiteRT uses NHWC (batch size, height, width, channels) layout for image operations, such as convolution and pooling. Sentis uses NCHW (batch size, channels, height, width) internally, and might insert Transpose operators where needed in the model graph. The Sentis importer tries to minimize the number of transposes used for intermediate tensor operations. Consequently, intermediate tensors in the Sentis model may use a different layout than in the original LiteRT model. Input and output tensor shapes remain unchanged.

    Sentis might create additional layers when it optimizes the model. A full list of Sentis-only layers is available here.

    Unsupported features

    Sentis currently does not support the following LiteRT features:

    • Multiple subgraphs: If the model contains multiple subgraphs, only the first one is used. All others are ignored.
    • SIGN_BIT activation: Operators using the fused_activation_function attribute with the value SIGN_BIT are not supported.
    • Custom operators: Custom LiteRT operators are not supported.
    • Sparse tensors: Sparse tensor formats are not supported.

    Unsupported tensor types

    The following tensor data types are not supported in any context:

    • string
    • complex64
    • complex128
    • resource
    • variant

    In addition, the following types are not supported for constant tensors:

    • int4
    • bfloat16

    Unsupported operators

    The following LiteRT operators are not supported in the current version of Sentis.

    • assign_variable
    • basic_lstm
    • batch_to_space_nd
    • bidirectional_sequence_lstm
    • bitcast
    • bucketize
    • call_once
    • complex_abs
    • control_node
    • custom
    • custom_tf
    • densify
    • dilate
    • dynamic_update_slice
    • external_const
    • fake_quant
    • hashtable
    • hashtable_find
    • hashtable_import
    • hashtable_size
    • if
    • imag
    • lstm
    • matrix_diag
    • matrix_set_diag
    • no_value
    • non_max_suppression_v4
    • non_max_suppression_v5
    • NumericVerify
    • poly_call
    • pseudo_const
    • pseudo_qconst
    • pseudo_sparse_const
    • pseudo_sparse_qconst
    • quantize
    • read_variable
    • real
    • reverse_sequence
    • rfft2d
    • right_shift
    • segment_sum
    • space_to_batch_nd
    • StableHLO - All operators
    • svdf
    • unidirectional_sequence_lstm
    • unidirectional_sequence_rnn
    • unique
    • unsorted_segment_max
    • unsorted_segment_min
    • unsorted_segment_prod
    • unsorted_segment_sum
    • var_handle
    • while
    • yield

    Additional resources

    • 'tfl' Dialect
    • Profile a model
    • Supported functional methods
    • Supported ONNX operators
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)