A parallel Fortran framework for neural networks and deep learning
This work provides a domain-specific tool for researchers and practitioners in scientific computing who use Fortran, but it is incremental as it replicates existing functionality in a new language.
The paper introduces neural-fortran, a parallel Fortran framework for neural networks and deep learning, which achieves similar ease of use and computational performance to an existing popular framework.
This paper describes neural-fortran, a parallel Fortran framework for neural networks and deep learning. It features a simple interface to construct feed-forward neural networks of arbitrary structure and size, several activation functions, and stochastic gradient descent as the default optimization algorithm. Neural-fortran also leverages the Fortran 2018 standard collective subroutines to achieve data-based parallelism on shared- or distributed-memory machines. First, I describe the implementation of neural networks with Fortran derived types, whole-array arithmetic, and collective sum and broadcast operations to achieve parallelism. Second, I demonstrate the use of neural-fortran in an example of recognizing hand-written digits from images. Finally, I evaluate the computational performance in both serial and parallel modes. Ease of use and computational performance are similar to an existing popular machine learning framework, making neural-fortran a viable candidate for further development and use in production.