athena__initialiser_data Module

Module containing the implementation of the data initialiser

This module contains the implementation of the data initialiser for the weights and biases of a layer


Uses


Interfaces

public interface data_init_type

  • private module function initialiser_data_setup(data) result(initialiser)

    Interface for the data initialiser

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in), dimension(..) :: data

    Data to initialise the weights and biases with

    Return Value type(data_init_type)

    data initialiser object


Derived Types

type, public, extends(base_init_type) ::  data_init_type

Type for the data initialiser

Components

Type Visibility Attributes Name Initial
real(kind=real32), public, dimension(:), allocatable :: data

Data to initialise the weights or biases with

real(kind=real32), public :: mean = 1._real32

Scale, mean, and standard deviation of the initialiser

character(len=20), public :: name

Name of the initialiser

real(kind=real32), public :: scale = 1._real32

Scale, mean, and standard deviation of the initialiser

real(kind=real32), public :: std = 0.01_real32

Scale, mean, and standard deviation of the initialiser

Constructor

private module function initialiser_data_setup (data)

Interface for the data initialiser

Type-Bound Procedures

procedure, public, pass(this) :: initialise => data_initialise

Initialise the weights and biases using the data distribution


Functions

private module function initialiser_data_setup(data) result(initialiser)

Interface for the data initialiser

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in), dimension(..) :: data

Data to initialise the weights and biases with

Return Value type(data_init_type)

data initialiser object


Subroutines

private pure subroutine data_initialise(this, input, fan_in, fan_out, spacing)

Initialise the weights and biases using the data distribution

Arguments

Type IntentOptional Attributes Name
class(data_init_type), intent(inout) :: this

Instance of the data initialiser

real(kind=real32), intent(out), dimension(..) :: input

Weights and biases to initialise

integer, intent(in), optional :: fan_in

Number of input and output parameters

integer, intent(in), optional :: fan_out

Number of input and output parameters

integer, intent(in), optional, dimension(:) :: spacing

Spacing of the input and output units