get_default_initialiser Function

public function get_default_initialiser(activation, is_bias) result(name)

Get the default initialiser based on the activation function

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: activation

Activation function

logical, intent(in), optional :: is_bias

Boolean whether initialiser is for bias

Return Value character(len=:), allocatable


Source Code

  function get_default_initialiser(activation, is_bias) result(name)
    !! Get the default initialiser based on the activation function
    implicit none

    ! Arguments
    character(*), intent(in) :: activation
    !! Activation function
    logical, optional, intent(in) :: is_bias
    !! Boolean whether initialiser is for bias

    character(:), allocatable :: name


    !---------------------------------------------------------------------------
    ! If bias, use default initialiser of zero
    !---------------------------------------------------------------------------
    if(present(is_bias))then
       if(is_bias) name = "zeros"
       return
    end if


    !---------------------------------------------------------------------------
    ! Set default initialiser based on activation
    !---------------------------------------------------------------------------
    if(trim(activation).eq."selu")then
       name = "lecun_normal"
    elseif(index(activation,"elu").ne.0)then
       name = "he_uniform"
    elseif(trim(activation).eq."batch")then
       name = "gaussian"
    else
       name = "glorot_uniform"
    end if

  end function get_default_initialiser