FNN 1.0.0
Toolbox to use NNs in Fortran.
|
Implements a dense (fully-connected) layer. More...
Public Member Functions | |
procedure, pass, public | tofile => dense_tofile |
Saves the layer. Implemented by dense_tofile. More... | |
procedure, pass, public | apply_forward => dense_apply_forward |
Applies and linearises the layer. Implemented by dense_apply_forward. More... | |
procedure, pass, public | apply_tangent_linear => dense_apply_tangent_linear |
Applies the TL of the layer. Implemented by dense_apply_tangent_linear. More... | |
procedure, pass, public | apply_adjoint => dense_apply_adjoint |
Applies the adjoint of the layer. Implemented by dense_apply_adjoint. More... | |
![]() | |
procedure, pass, public | get_num_parameters => layer_get_num_parameters |
Returns the number of parameters. Implemented by layer_get_num_parameters. More... | |
procedure, pass, public | set_parameters => layer_set_parameters |
Setter for layer::parameters. Implemented by layer_set_parameters. More... | |
procedure, pass, public | get_parameters => layer_get_parameters |
Getter for layer::parameters. Implemented by layer_get_parameters. More... | |
procedure, pass, public | tofile => layer_tofile |
Saves the layer. Implemented by layer_tofile. More... | |
procedure, pass, public | apply_forward => layer_apply_forward |
Applies and linearises the layer. Implemented by layer_apply_forward. More... | |
procedure, pass, public | apply_tangent_linear => layer_apply_tangent_linear |
Applies the TL of the layer. Implemented by layer_apply_tangent_linear. More... | |
procedure, pass, public | apply_adjoint => layer_apply_adjoint |
Applies the adjoint of the layer. Implemented by layer_apply_adjoint. More... | |
Additional Inherited Members | |
![]() | |
integer(ik), public | input_size |
The dimension of the input of the layer. More... | |
integer(ik), public | output_size |
The dimension of the output of the layer. More... | |
integer(ik), public | batch_size |
The batch size. More... | |
integer(ik), public | num_parameters |
The number of (trainable) parameters. More... | |
class(linearactivation), allocatable, public | activation |
The activation function. More... | |
real(rk), dimension(:), allocatable, public | parameters |
The vector of (trainable) parameters. More... | |
real(rk), dimension(:, :), allocatable, public | forward_input |
The storage for the layer::apply_forward method. More... | |
real(rk), dimension(:, :), allocatable, public | tangent_linear_input |
The storage for the layer::apply_tangent_linear method. More... | |
real(rk), dimension(:, :), allocatable, public | adjoint_input |
The storage for the layer::apply_adjoint method. More... | |
Implements a dense (fully-connected) layer.
This layer has two sets of (trainable) parameters:
Using numpy syntax,
where
A similar relationship holds between
procedure, pass, public fnn_layer_dense::denselayer::apply_adjoint |
Applies the adjoint of the layer. Implemented by dense_apply_adjoint.
procedure, pass, public fnn_layer_dense::denselayer::apply_forward |
Applies and linearises the layer. Implemented by dense_apply_forward.
procedure, pass, public fnn_layer_dense::denselayer::apply_tangent_linear |
Applies the TL of the layer. Implemented by dense_apply_tangent_linear.
procedure, pass, public fnn_layer_dense::denselayer::tofile |
Saves the layer. Implemented by dense_tofile.