This repository demonstrates how to implement tap-delays (TDL) in PyTorch framework for time series modeling. Currently, NARX and NARMAX have been implemented.
-
Acronym list is shown below.
Acronyms: NARX - Nonlinear Autoregressive eXogenous. NARMAX - Nonlinear Autoregressive Moving Average eXogenous. MRAC - Model Reference Adaptive Controller.
NOTE: This repository is a work in progress. Working on more general implementation of TDL. Also the examples will be cleaned up in the future. At this current stage not all test and examples work properly.
-
Example Folder: Contains examples for implementing PyTorch NARX and NARMAX modules for time-series modeling on real-life data. Also, included an example for implementing an MRAC in PyTorch which is a neural network controller.
-
Helper Folder: Contains helper methods for training NARX and NARMAX networks. Link to the helper methods are shown below
Helper Files: Helper Methods NARX Helper Methods NARMAX -
Model: Contains PyTorch implementation of NARX and NARMAX modules for time-series modeling. Link to the modules are shown below.
Modules: Modules NARX Modules NARMAX -
Optimizer: Contains PyTorch classes for optimization approaches shown below.
Optimizer Classes: Optimizer LM: Levenberg-Marquardt optimization algorithm. NOTE: This isn't an efficient implementation of LM, since pyTorch dosen't allow for gradient calculations with respect to a vector of errors. So the jacobian calculation isn't very efficient. Optimizer SCG: Scaled conjugate gradient optimization algorithm.