print_to_unit_batch Module Subroutine

module subroutine print_to_unit_batch(this, unit)

Print 3D batch normalisation layer to unit

Arguments

Type IntentOptional Attributes Name
class(batch_layer_type), intent(in) :: this

Instance of batch normalisation layer

integer, intent(in) :: unit

File unit


Source Code

  module subroutine print_to_unit_batch(this, unit)
    !! Print 3D batch normalisation layer to unit
    implicit none

    ! Arguments
    class(batch_layer_type), intent(in) :: this
    !! Instance of batch normalisation layer
    integer, intent(in) :: unit
    !! File unit

    ! Local variables
    integer :: m
    !! Loop index
    character(100) :: fmt
    !! Format string


    ! Write initial parameters
    !---------------------------------------------------------------------------
    write(fmt,'("(3X,""INPUT_SHAPE = "",",I0,"(1X,I0))")') size(this%input_shape)
    write(unit,fmt) this%input_shape
    write(unit,'(3X,"MOMENTUM = ",F0.9)') this%momentum
    write(unit,'(3X,"EPSILON = ",F0.9)') this%epsilon
    write(unit,'(3X,"NUM_CHANNELS = ",I0)') this%num_channels
    write(unit,'(3X,"GAMMA_INITIALISER = ",A)') trim(this%kernel_init%name)
    write(unit,'(3X,"BETA_INITIALISER = ",A)') trim(this%bias_init%name)
    write(unit,'(3X,"MOVING_MEAN_INITIALISER = ",A)') &
         trim(this%moving_mean_init%name)
    write(unit,'(3X,"MOVING_VARIANCE_INITIALISER = ",A)') &
         trim(this%moving_variance_init%name)
    write(unit,'("GAMMA")')
    do m = 1, this%num_channels
       write(unit,'(5(E16.8E2))') this%params(1)%val(m,1)
    end do
    write(unit,'("END GAMMA")')
    write(unit,'("BETA")')
    do m = 1, this%num_channels
       write(unit,'(5(E16.8E2))') this%params(1)%val(this%num_channels+m,1)
    end do
    write(unit,'("END BETA")')

  end subroutine print_to_unit_batch