  Emerging two terminal nanoscale memory devices, known as memristors, have
over the past decade demonstrated great potential for implementing energy
efficient neuro-inspired computing architectures. As a result, a wide-range of
technologies have been developed that in turn are described via distinct
empirical models. This diversity of technologies requires the establishment of
versatile tools that can enable designers to translate memristors' attributes
in novel neuro-inspired topologies. In this paper, we present NeuroPack, a
modular, algorithm level Python-based simulation platform that can support
studies of memristor neuro-inspired architectures for performing online
learning or offline classification. The NeuroPack environment is designed with
versatility being central, allowing the user to chose from a variety of neuron
models, learning rules and memristors models. Its hierarchical structure,
empowers NeuroPack to predict any memristor state changes and the corresponding
neural network behavior across a variety of design decisions and user
parameters options. The use of NeuroPack is demonstrated herein via an
application example of performing handwritten digit classification with the
MNIST dataset and an existing empirical model for metal-oxide memristors.
