Sets the activation function. Input string must match one of provided activation functions, otherwise it defaults to sigmoid. If activation not present, defaults to sigmoid.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(layer_type), | intent(inout) | :: | self | |||
| character(len=*), | intent(in) | :: | activation |
pure elemental subroutine set_activation(self, activation)
!! Sets the activation function. Input string must match one of
!! provided activation functions, otherwise it defaults to sigmoid.
!! If activation not present, defaults to sigmoid.
class(layer_type), intent(in out) :: self
character(len=*), intent(in) :: activation
select case(trim(activation))
case('gaussian')
self % activation => gaussian
self % activation_prime => gaussian_prime
self % activation_str = 'gaussian'
case('relu')
self % activation => relu
self % activation_prime => relu_prime
self % activation_str = 'relu'
case('sigmoid')
self % activation => sigmoid
self % activation_prime => sigmoid_prime
self % activation_str = 'sigmoid'
case('step')
self % activation => step
self % activation_prime => step_prime
self % activation_str = 'step'
case('tanh')
self % activation => tanhf
self % activation_prime => tanh_prime
self % activation_str = 'tanh'
case default
self % activation => sigmoid
self % activation_prime => sigmoid_prime
self % activation_str = 'sigmoid'
end select
end subroutine set_activation