Setup the desired activation function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(*), | intent(in) | :: | input |
Name of the activation function or activation object |
||
| integer, | intent(out), | optional | :: | error |
Error code |
Activation function object
function activation_setup(input, error) result(activation) !! Setup the desired activation function implicit none ! Arguments class(*), intent(in) :: input !! Name of the activation function or activation object class(base_actv_type), allocatable :: activation !! Activation function object integer, optional, intent(out) :: error !! Error code ! Local variables character(256) :: err_msg !! Error message !--------------------------------------------------------------------------- ! select desired activation function !--------------------------------------------------------------------------- select type(input) class is(base_actv_type) activation = input type is(character(*)) select case(trim(to_lower(input))) case("gaussian") activation = gaussian_actv_type() case ("linear") activation = linear_actv_type() case ("piecewise") activation = piecewise_actv_type() case ("relu") activation = relu_actv_type() case ("leaky_relu") activation = leaky_relu_actv_type() case ("sigmoid") activation = sigmoid_actv_type() case ("softmax") activation = softmax_actv_type() case("swish") activation = swish_actv_type() case ("tanh") activation = tanh_actv_type() case ("none") activation = none_actv_type() case ("selu") activation = selu_actv_type() case ("silu") activation = swish_actv_type() case default if(present(error))then error = -1 return else write(err_msg,'("Incorrect activation name given ''",A,"''")') & trim(to_lower(input)) call stop_program(trim(err_msg)) write(*,*) "BB" return end if end select class default if(present(error))then error = -1 return else write(err_msg,'("Unknown input type given for activation setup")') call stop_program(trim(err_msg)) return end if end select end function activation_setup