module subroutine train(self, input_data, output_data, batch_size, &
epochs, optimizer)
use Base
class(network), intent(in out) :: self
real, intent(in) :: input_data(:,:)
real, intent(in) :: output_data(:,:)
integer, intent(in) :: batch_size
integer, intent(in) :: epochs
type(sgd), intent(in) :: optimizer
real :: pos
integer :: dataset_size
integer :: batch_start, batch_end
integer :: i, j, n, k
integer :: istart, iend, indices(2)
dataset_size = size(output_data, dim=2)
write(*,100)
100 Format(" Starting the training")
CALL RANDOM_SEED
In order to work in Intel Fortran you need to add RANDOM_SEED to your code, otherwise you are just repeating the same numbers over and over. Random_number appears to take a constant from the computer if you do not use random_seed.