I. Introduction
Artificial neural networks (ANN) include a wide bio-inspired class of algorithms that is capable of learning and analyzing vast amount of data without being grounded on explicit instructions [1]. ANNs have allowed the development of a large area of novel information processing schemes that range from machine vision to language translation and audio processing [1]–[4]. The first ANNs have been implemented in traditional Von Neumann devices. However, as the number of available data is increased along with the need for fast processing, such computational paradigms suffer from an inherent problem, which is the separation between the central processing unit (CPU) and the memory unit [5]. To this end, a great amount of research nowadays focuses on new hardware architectures that break free from these limitations. Graphical Processing Units (GPUs) [6], application-specific integrated circuits (ASICs) [7], neuromorphic chips such as IBM's True North [8] and Intel's Loihi [9], have demonstrated considerable improvements in energy efficiency and processing speed.