Copy a row-major ONNX matrix initialiser into a diffstruc parameter.
| Type | Intent | Optional | 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 |
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