@@ -43,7 +43,7 @@ subroutine load_mnist(tr_images, tr_labels, te_images,&
4343 ! Loads the MNIST dataset into arrays.
4444 real (rk), allocatable , intent (in out ) :: tr_images(:,:), tr_labels(:)
4545 real (rk), allocatable , intent (in out ) :: te_images(:,:), te_labels(:)
46- real (rk), allocatable , intent (in out ) :: va_images(:,:), va_labels(:)
46+ real (rk), allocatable , intent (in out ), optional :: va_images(:,:), va_labels(:)
4747 integer (ik), parameter :: dtype = 4 , image_size = 784
4848 integer (ik), parameter :: tr_nimages = 50000
4949 integer (ik), parameter :: te_nimages = 10000
@@ -59,10 +59,12 @@ subroutine load_mnist(tr_images, tr_labels, te_images,&
5959 call read_binary_file(' ../data/mnist/mnist_testing_labels.dat' ,&
6060 dtype, te_nimages, te_labels)
6161
62- call read_binary_file(' ../data/mnist/mnist_validation_images.dat' ,&
63- dtype, image_size, va_nimages, va_images)
64- call read_binary_file(' ../data/mnist/mnist_validation_labels.dat' ,&
65- dtype, va_nimages, va_labels)
62+ if (present (va_images) .and. present (va_labels)) then
63+ call read_binary_file(' ../data/mnist/mnist_validation_images.dat' ,&
64+ dtype, image_size, va_nimages, va_images)
65+ call read_binary_file(' ../data/mnist/mnist_validation_labels.dat' ,&
66+ dtype, va_nimages, va_labels)
67+ end if
6668
6769 end subroutine load_mnist
6870
0 commit comments