load_onnx_expanded_matrix_param Subroutine

public subroutine load_onnx_expanded_matrix_param(param, init, rows, cols)

Copy a row-major ONNX matrix initialiser into a diffstruc parameter.

Arguments

Type IntentOptional Attributes Name
type(array_type), intent(inout) :: param

Destination diffstruc parameter tensor

type(onnx_initialiser_type), intent(in) :: init

Row-major ONNX initialiser data

integer, intent(in) :: rows

Matrix shape

integer, intent(in) :: cols

Matrix shape


Source Code

  subroutine load_onnx_expanded_matrix_param(param, init, rows, cols)
    !! Copy a row-major ONNX matrix initialiser into a diffstruc parameter.
    implicit none

    ! Arguments
    type(array_type), intent(inout) :: param
    !! Destination diffstruc parameter tensor
    type(onnx_initialiser_type), intent(in) :: init
    !! Row-major ONNX initialiser data
    integer, intent(in) :: rows, cols
    !! Matrix shape

    ! Local variables
    real(real32), allocatable :: col_major(:)
    !! Temporary column-major buffer for ATHENA internal storage

    allocate(col_major(rows * cols))
    call row_to_col_major_2d(init%data, col_major, rows, cols)
    param%val(:,1) = col_major
    deallocate(col_major)

  end subroutine load_onnx_expanded_matrix_param