initialise Function

private function initialise(scale, alpha, lambda, attributes) result(activation)

Initialise a SELU activation function

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in), optional :: scale

Optional scale factor for activation output

real(kind=real32), intent(in), optional :: alpha

Optional alpha parameter (default: 1.67326)

real(kind=real32), intent(in), optional :: lambda

Optional lambda parameter (default: 1.0507)

type(onnx_attribute_type), intent(in), optional :: attributes(:)

Optional ONNX attributes

Return Value type(selu_actv_type)

SELU activation type


Source Code

  function initialise(scale, alpha, lambda, attributes) result(activation)
    !! Initialise a SELU activation function
    implicit none

    ! Arguments
    real(real32), optional, intent(in) :: scale
    !! Optional scale factor for activation output
    real(real32), optional, intent(in) :: alpha
    !! Optional alpha parameter (default: 1.67326)
    real(real32), optional, intent(in) :: lambda
    !! Optional lambda parameter (default: 1.0507)
    type(selu_actv_type) :: activation
    !! SELU activation type
    type(onnx_attribute_type), optional, intent(in) :: attributes(:)
    !! Optional ONNX attributes


    call activation%reset()

    if(present(scale)) activation%scale = scale
    if(abs(activation%scale-1._real32) .gt. 1.e-6_real32)then
       activation%apply_scaling = .true.
    end if
    if(present(alpha)) activation%alpha = alpha
    if(present(lambda)) activation%lambda = lambda
    if(present(attributes))then
       call activation%apply_attributes(attributes)
    end if

  end function initialise