apply_gaussian Function

private function apply_gaussian(this, val) result(output)

Apply Gaussian activation to array

Applies the Gaussian function element-wise to input array: f = exp(-x^2/(2σ^2))/(σ√(2π))

Type Bound

gaussian_actv_type

Arguments

Type IntentOptional Attributes Name
class(gaussian_actv_type), intent(in) :: this

Gaussian activation type containing sigma parameter

type(array_type), intent(in) :: val

Input values

Return Value type(array_type), pointer

Gaussian activated output values


Source Code

  function apply_gaussian(this, val) result(output)
    !! Apply Gaussian activation to array
    !!
    !! Applies the Gaussian function element-wise to input array:
    !! f = exp(-x^2/(2σ^2))/(σ√(2π))
    implicit none

    ! Arguments
    class(gaussian_actv_type), intent(in) :: this
    !! Gaussian activation type containing sigma parameter
    type(array_type), intent(in) :: val
    !! Input values
    type(array_type), pointer :: output
    !! Gaussian activated output values

    if(this%apply_scaling)then
       output => gaussian(val, this%mu, this%sigma) * this%scale
    else
       output => gaussian(val, this%mu, this%sigma)
    end if

  end function apply_gaussian