Load a parameter from ONNX initialisers into a diffstruc array.
| Type | Intent | Optional | 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) |
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