Build conv layer from attributes and return layer
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(onnx_node_type), | intent(in) | :: | node |
ONNX node information |
||
| type(onnx_initialiser_type), | intent(in), | dimension(:) | :: | initialisers |
ONNX initialiser information |
|
| type(onnx_tensor_type), | intent(in), | dimension(:) | :: | value_info |
ONNX value info information |
|
| integer, | intent(in), | optional | :: | verbose |
Verbosity level |
Instance of the 2D convolutional layer
function create_from_onnx_conv_layer( & node, initialisers, value_info, verbose & ) result(layer) !! Build conv layer from attributes and return layer implicit none ! Arguments type(onnx_node_type), intent(in) :: node !! ONNX node information type(onnx_initialiser_type), dimension(:), intent(in) :: initialisers !! ONNX initialiser information type(onnx_tensor_type), dimension(:), intent(in) :: value_info !! ONNX value info information integer, optional, intent(in) :: verbose !! Verbosity level class(base_layer_type), allocatable :: layer !! Instance of the 2D convolutional layer ! Local variables integer :: i, dim !! Loop variable and data rank integer :: verbose_ = 0 !! Verbosity level if(present(verbose)) verbose_ = verbose dim = size(value_info(1)%dims) - 2 select case(dim) case(1) allocate(layer, source=conv1d_layer_type()) case(2) allocate(layer, source=conv2d_layer_type()) case(3) allocate(layer, source=conv3d_layer_type()) case default call stop_program("create_from_onnx_conv_layer: " // & "unsupported convolution dimension") end select call layer%build_from_onnx(node, initialisers, value_info, verbose=verbose_) end function create_from_onnx_conv_layer