get_partial_maxpool2d Function

function get_partial_maxpool2d(this, upstream_grad) result(output)

Get the partial derivative for max pooling

Arguments

Type IntentOptional Attributes Name
class(array_type), intent(inout) :: this
type(array_type), intent(in) :: upstream_grad

Return Value type(array_type)


Source Code

  function get_partial_maxpool2d(this, upstream_grad) result(output)
    !! Get the partial derivative for max pooling
    implicit none

    ! Arguments
    class(array_type), intent(inout) :: this
    type(array_type), intent(in) :: upstream_grad
    type(array_type) :: output

    call output%allocate(array_shape = &
         [ this%left_operand%shape, size(this%val, dim=2) ] &
    )
    call this%get_partial_left_val(upstream_grad%val, output%val)

  end function get_partial_maxpool2d