classify_fixed_lno_onnx_expanded_nop Function

public function classify_fixed_lno_onnx_expanded_nop(prefix, nodes, num_nodes) result(is_fixed_lno)

Return true when the expanded-ONNX node cluster for prefix is a fixed LNO.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: prefix

Expanded-ONNX layer prefix (e.g. "layer2")

type(onnx_node_type), intent(in) :: nodes(:)

Parsed ONNX nodes

integer, intent(in) :: num_nodes

Number of valid node entries

Return Value logical

Return value

Fixed LNO has MatMul_3 but not the Exp/Exp_1 pair of dynamic LNO


Source Code

  function classify_fixed_lno_onnx_expanded_nop(prefix, nodes, &
       num_nodes) result(is_fixed_lno)
    !! Return true when the expanded-ONNX node cluster
    !! for prefix is a fixed LNO.
    implicit none

    ! Arguments
    character(*), intent(in) :: prefix
    !! Expanded-ONNX layer prefix (e.g. "layer2")
    type(onnx_node_type), intent(in) :: nodes(:)
    !! Parsed ONNX nodes
    integer, intent(in) :: num_nodes
    !! Number of valid node entries

    logical :: is_fixed_lno
    !! Return value

    !! Fixed LNO has MatMul_3 but not the Exp/Exp_1 pair of dynamic LNO
    is_fixed_lno = &
         find_onnx_expanded_node_by_suffix( &
              nodes, num_nodes, prefix, 'MatMul_3') .gt. 0 &
         .and. &
         find_onnx_expanded_node_by_suffix( &
              nodes, num_nodes, prefix, 'Exp') .le. 0

  end function classify_fixed_lno_onnx_expanded_nop