| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(graph_nop_layer_type), | intent(inout) | :: | this |
Layer instance to configure |
||
| integer, | intent(in) | :: | num_outputs |
Number of output node features |
||
| integer, | intent(in) | :: | coord_dim |
Dimension of edge coordinate features |
||
| integer, | intent(in) | :: | kernel_hidden |
Hidden width of the kernel MLP |
||
| 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_gno( & this, num_outputs, coord_dim, kernel_hidden, & 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(graph_nop_layer_type), intent(inout) :: this !! Layer instance to configure integer, intent(in) :: num_outputs !! Number of output node features integer, intent(in) :: coord_dim !! Dimension of edge coordinate features integer, intent(in) :: kernel_hidden !! Hidden width of the kernel MLP 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 = "graph_nop" this%type = "gnop" this%input_rank = 2 this%output_rank = 2 this%use_graph_input = .true. this%use_graph_output = .true. this%use_bias = use_bias this%num_outputs = num_outputs this%coord_dim = coord_dim this%kernel_hidden = kernel_hidden this%num_time_steps = 1 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(*,'("GRAPH_NOP activation: ",A)') & trim(this%activation%name) end if end if end subroutine set_hyperparams_gno