Table of Contents
Fetching ...

PRCpy: A Python Package for Processing of Physical Reservoir Computing

Harry Youel, Daniel Prestwood, Oscar Lee, Tianyi Wei, Kilian D. Stenning, Jack C. Gartside, Will R. Branford, Karin Everschor-Sitte, Hidekazu Kurebayashi

TL;DR

PRCpy, an open-source Python library designed to simplify the implementation and assessment of PRC for researchers, is introduced, which provides a high-level interface for data handling, preprocessing, model training, and evaluation.

Abstract

Physical reservoir computing (PRC) is a computing framework that harnesses the intrinsic dynamics of physical systems for computation. It offers a promising energy-efficient alternative to traditional von Neumann computing for certain tasks, particularly those demanding both memory and nonlinearity. As PRC is implemented across a broad variety of physical systems, the need increases for standardised tools for data processing and model training. In this manuscript, we introduce PRCpy, an open-source Python library designed to simplify the implementation and assessment of PRC for researchers. The package provides a high-level interface for data handling, preprocessing, model training, and evaluation. Key concepts are described and accompanied by experimental data on two benchmark problems: nonlinear transformation and future forecasting of chaotic signals. Throughout this manuscript, which will be updated as a rolling release, we aim to facilitate researchers from diverse disciplines to prioritise evaluating the computational benefits of the physical properties of their systems by simplifying data processing, model training and evaluation.

PRCpy: A Python Package for Processing of Physical Reservoir Computing

TL;DR

PRCpy, an open-source Python library designed to simplify the implementation and assessment of PRC for researchers, is introduced, which provides a high-level interface for data handling, preprocessing, model training, and evaluation.

Abstract

Physical reservoir computing (PRC) is a computing framework that harnesses the intrinsic dynamics of physical systems for computation. It offers a promising energy-efficient alternative to traditional von Neumann computing for certain tasks, particularly those demanding both memory and nonlinearity. As PRC is implemented across a broad variety of physical systems, the need increases for standardised tools for data processing and model training. In this manuscript, we introduce PRCpy, an open-source Python library designed to simplify the implementation and assessment of PRC for researchers. The package provides a high-level interface for data handling, preprocessing, model training, and evaluation. Key concepts are described and accompanied by experimental data on two benchmark problems: nonlinear transformation and future forecasting of chaotic signals. Throughout this manuscript, which will be updated as a rolling release, we aim to facilitate researchers from diverse disciplines to prioritise evaluating the computational benefits of the physical properties of their systems by simplifying data processing, model training and evaluation.

Paper Structure

This paper contains 21 sections, 4 equations, 5 figures, 2 tables.

Figures (5)

  • Figure 1: Typical PRC schematic. The input layer consists of a time series signal. Each value is mapped onto a controllable quantity and applied to the physical system. The reservoir is a multidimensional matrix constructed by combining all system measurement responses. The elements of the reservoir are then used to predict the desired target output via regression techniques, often computed by an external computing device and program code. PRCpy streamlines such complex coding required for the output layer.
  • Figure 2: Creating the reservoir layer.a, A pre-defined input signal ($u(t)=\rm{sin}(\textit{t})$) is mapped onto the current and applied to a simple LED circuit as shown in the middle panel. For each current, voltage is measured and is individually saved to a file. Here, "scan” refers to the next measurement number. b, Time-multiplexing is employed to increase the dimensionality of the reservoir for single-input-single-output systems as such. Three example windows are shown with randomly selected bounds on the I-V curve (b (i)). The corresponding mapped currents (b (ii)) are subsequently applied.
  • Figure 3: Transformation RC example.a(d), A visualisation of the reservoir matrix for the training (testing) data. b, Defined target signal ($y(t)=\rm{square}(\textit{t})$). Ridge regression is applied to the training set of the reservoir matrix and their corresponding target values to obtain an optimised weight matrix. c(e), Performance of training – the weights are applied to the training (testing) reservoir matrix, which is shown by a blue line, and compared with the target signal (dashed red line).
  • Figure 4: Comparison between diode circuit and capacitor & diode circuit RC performances. a(i), A diode circuit diagram. a(ii), Three example line profiles from the diode reservoir. b(i), A capacitor & diode circuit diagram. b(ii), Three example line profiles from the capacitor & diode reservoir. c & d, Comparison between sine to square wave and (e & f), sine to sawtooth wave transformation testing performances for both circuits. g & h, Comparison between Mackey Glass forecasting testing performances for both circuits.
  • Figure 5: Forecasting RC example. Forecasting of a Mackey Glass signal for 10 future steps using a magnetic (skyrmion) reservoir.