emit_output_identity Subroutine

public subroutine emit_output_identity(prefix, source_name, activation_name, nodes, num_nodes)

Emit a final Identity node using the standard ATHENA output naming.

Arguments

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

Layer node prefix

character(len=*), intent(in) :: source_name

Source tensor to rename

character(len=*), intent(in) :: activation_name

Final activation name used in the exported output suffix

type(onnx_node_type), intent(inout), dimension(:) :: nodes

Accumulator for ONNX nodes

integer, intent(inout) :: num_nodes

Current number of nodes


Source Code

  subroutine emit_output_identity(prefix, source_name, activation_name, &
       nodes, num_nodes)
    !! Emit a final Identity node using the standard ATHENA output naming.
    implicit none

    ! Arguments
    character(*), intent(in) :: prefix
    !! Layer node prefix
    character(*), intent(in) :: source_name
    !! Source tensor to rename
    character(*), intent(in) :: activation_name
    !! Final activation name used in the exported output suffix
    type(onnx_node_type), intent(inout), dimension(:) :: nodes
    !! Accumulator for ONNX nodes
    integer, intent(inout) :: num_nodes
    !! Current number of nodes

    ! Local variables
    character(:), allocatable :: suffix

    suffix = '_output'
    if(trim(activation_name) .ne. 'none')then
       suffix = '_' // trim(adjustl(activation_name)) // '_output'
    end if
    call emit_node('Identity', trim(prefix)//'_identity', &
         trim(prefix)//trim(suffix), '', nodes, num_nodes, &
         in1=trim(source_name))

  end subroutine emit_output_identity