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及其固有的并行化支持对于并行神经网络模拟非常好,因为与顺序变体相比,处理时间显著减少了。