| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(orthogonal_nop_block_type), | intent(inout) | :: | this |
Layer instance to configure |
||
| integer, | intent(in) | :: | num_outputs |
Number of output features |
||
| integer, | intent(in) | :: | num_basis |
Number of orthogonal basis vectors |
||
| logical, | intent(in) | :: | use_bias |
Whether to use a bias term |
||
| class(base_actv_type), | intent(in), | allocatable | :: | activation |
Activation function object |
|
| class(base_init_type), | intent(in), | allocatable | :: | kernel_initialiser |
Kernel and bias initialiser objects |
|
| class(base_init_type), | intent(in), | allocatable | :: | bias_initialiser |
Kernel and bias initialiser objects |
|
| integer, | intent(in), | optional | :: | verbose |
Verbosity level |
subroutine set_hyperparams_ono( & this, num_outputs, num_basis, & use_bias, & activation, & kernel_initialiser, bias_initialiser, & verbose & ) use athena__activation, only: activation_setup use athena__initialiser, only: get_default_initialiser, initialiser_setup implicit none ! Arguments class(orthogonal_nop_block_type), intent(inout) :: this !! Layer instance to configure integer, intent(in) :: num_outputs !! Number of output features integer, intent(in) :: num_basis !! Number of orthogonal basis vectors logical, intent(in) :: use_bias !! Whether to use a bias term class(base_actv_type), allocatable, intent(in) :: activation !! Activation function object class(base_init_type), allocatable, intent(in) :: & kernel_initialiser, bias_initialiser !! Kernel and bias initialiser objects integer, optional, intent(in) :: verbose !! Verbosity level ! Local variables character(len=256) :: buffer !! Buffer for default initialiser lookup this%name = "orthogonal_nop" this%type = "nop" this%input_rank = 1 this%output_rank = 1 this%use_bias = use_bias this%num_outputs = num_outputs this%num_basis = num_basis if(allocated(this%activation)) deallocate(this%activation) if(.not.allocated(activation))then this%activation = activation_setup("none") else allocate(this%activation, source=activation) end if if(allocated(this%kernel_init)) deallocate(this%kernel_init) if(.not.allocated(kernel_initialiser))then buffer = get_default_initialiser(this%activation%name) this%kernel_init = initialiser_setup(buffer) else allocate(this%kernel_init, source=kernel_initialiser) end if if(allocated(this%bias_init)) deallocate(this%bias_init) if(.not.allocated(bias_initialiser))then buffer = get_default_initialiser( & this%activation%name, & is_bias=.true. & ) this%bias_init = initialiser_setup(buffer) else allocate(this%bias_init, source=bias_initialiser) end if if(present(verbose))then if(abs(verbose).gt.0)then write(*,'("ORTHOGONAL_NOP activation: ",A)') & trim(this%activation%name) end if end if end subroutine set_hyperparams_ono