emit_nop_metadata Subroutine

public subroutine emit_nop_metadata(layer, prefix, metadata, num_meta)

Build the metadata entry required to reconstruct a NOP layer.

Arguments

Type IntentOptional Attributes Name
class(base_layer_type), intent(in) :: layer
character(len=*), intent(in) :: prefix
character(len=4096), intent(inout) :: metadata(:)
integer, intent(inout) :: num_meta

Source Code

  subroutine emit_nop_metadata(layer, prefix, metadata, num_meta)
    !! Build the metadata entry required to reconstruct a NOP layer.
    implicit none

    class(base_layer_type), intent(in) :: layer
    character(*), intent(in) :: prefix
    character(4096), intent(inout) :: metadata(:)
    integer, intent(inout) :: num_meta

    type(onnx_attribute_type), allocatable :: attrs(:)
    integer :: i
    character(2048) :: value_str

    attrs = layer%get_attributes()
    if(.not.allocated(attrs)) return
    if(size(attrs) .eq. 0) return

    value_str = 'subtype=' // trim(adjustl(layer%name))
    do i = 1, size(attrs)
       value_str = trim(value_str) // ';' // trim(attrs(i)%name) // '=' // &
            trim(adjustl(attrs(i)%val))
    end do

    num_meta = num_meta + 1
    write(metadata(num_meta), '(A)') &
         '      {"key": "athena_nop_' // trim(prefix) // &
         '", "value": "' // trim(value_str) // '"}'

  end subroutine emit_nop_metadata