extract_onnx_expanded_layer_prefix Function

function extract_onnx_expanded_layer_prefix(node_name) result(prefix)

Extract the layerN prefix from an expanded-ONNX node name.

Arguments

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

Node name such as /layer1/MatMul

Return Value character(len=32)

Extracted layer prefix without leading slash


Source Code

  function extract_onnx_expanded_layer_prefix(node_name) result(prefix)
    !! Extract the layerN prefix from an expanded-ONNX node name.
    implicit none

    ! Arguments
    character(*), intent(in) :: node_name
    !! Node name such as /layer1/MatMul
    character(32) :: prefix
    !! Extracted layer prefix without leading slash

    ! Local variables
    integer :: pos
    !! Position of the second slash in the node name
    character(128) :: trimmed_name
    !! Trimmed working copy of the node name

    prefix = ''
    trimmed_name = trim(node_name)
    if(index(trimmed_name, '/layer') .ne. 1) return

    pos = index(trimmed_name(2:), '/')
    if(pos .le. 0) return

    prefix = trimmed_name(2:pos)

  end function extract_onnx_expanded_layer_prefix