Build the metadata entry required to reconstruct a GNN layer.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(base_layer_type), | intent(in) | :: | layer |
GNN layer instance |
||
| character(len=*), | intent(in) | :: | prefix |
Node prefix used for this exported layer |
||
| character(len=4096), | intent(inout) | :: | metadata(:) |
Metadata strings to append to |
||
| integer, | intent(inout) | :: | num_meta |
Number of metadata entries |
subroutine build_gnn_metadata(layer, prefix, metadata, num_meta) !! Build the metadata entry required to reconstruct a GNN layer. implicit none ! Arguments class(base_layer_type), intent(in) :: layer !! GNN layer instance character(*), intent(in) :: prefix !! Node prefix used for this exported layer character(4096), intent(inout) :: metadata(:) !! Metadata strings to append to integer, intent(inout) :: num_meta !! Number of metadata entries ! Local variables type(onnx_attribute_type), allocatable :: attrs(:) !! Layer attributes returned by polymorphic dispatch integer :: i !! Loop index character(2048) :: value_str !! Semicolon-separated metadata payload attrs = layer%get_attributes() if(.not.allocated(attrs) .or. 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_gnn_' // trim(prefix) // & '", "value": "' // trim(value_str) // '"}' end subroutine build_gnn_metadata