This paper describes the design and implementation of parallel neural networks (PNNs) with the novel programming language Golang. We follow in our approach the classical Single-Program Multiple-Data (SPMD) model where a PNN is composed of several sequential neural networks, which are trained with a proportional share of the training dataset. We used for this purpose the MNIST dataset, which contains binary images of handwritten digits. Our analysis focusses on different activation functions and optimizations in the form of stochastic gradients and initialization of weights and biases. We conduct a thorough performance analysis, where network configurations and different performance factors are analyzed and interpreted. Golang and its inherent parallelization support proved very well for parallel neural network simulation by considerable decreased processing times compared to sequential variants.
翻译:本文描述了使用新型编程语言Golang设计和实现并行神经网络(PNN)的过程。我们遵循经典的单程序多数据(SPMD)模型,其中PNN由多个顺序神经网络组成,这些网络使用训练数据集的按比例切分部分进行训练。为此,我们使用了MNIST数据集,该数据集包含手写数字的二值图像。我们的分析聚焦于不同的激活函数以及以随机梯度、权重和偏置初始化形式呈现的优化方法。我们进行了详尽的性能分析,对网络配置和不同的性能因素进行了解析与解读。与顺序版本相比,Golang及其固有的并行化支持显著缩短了处理时间,从而非常适用于并行神经网络的模拟。