load_nop_param_from_inits Subroutine

public subroutine load_nop_param_from_inits(param, prefix, suffix, inits, num_inits, dims)

Load a parameter from ONNX initialisers into a diffstruc array.

Arguments

Type IntentOptional Attributes Name
type(array_type), intent(inout) :: param
character(len=*), intent(in) :: prefix
character(len=*), intent(in) :: suffix
type(onnx_initialiser_type), intent(in) :: inits(:)
integer, intent(in) :: num_inits
integer, intent(in) :: dims(2)

Source Code

  subroutine load_nop_param_from_inits( &
       param, prefix, suffix, inits, num_inits, dims)
    !! Load a parameter from ONNX initialisers into a diffstruc array.
    implicit none

    type(array_type), intent(inout) :: param
    character(*), intent(in) :: prefix, suffix
    type(onnx_initialiser_type), intent(in) :: inits(:)
    integer, intent(in) :: num_inits
    integer, intent(in) :: dims(2)

    integer :: k
    character(128) :: target_name
    real(real32), allocatable :: col_data(:)

    write(target_name, '(A,A)') trim(prefix), suffix

    do k = 1, num_inits
       if(trim(inits(k)%name) .ne. trim(target_name)) cycle
       if(.not.allocated(inits(k)%data)) cycle

       if(dims(2) .gt. 1)then
          allocate(col_data(size(inits(k)%data)))
          call row_to_col_major_2d(inits(k)%data, col_data, dims(1), dims(2))
          param%val(:,1) = col_data
          deallocate(col_data)
       else
          param%val(:,1) = inits(k)%data
       end if
       return
    end do

  end subroutine load_nop_param_from_inits