Skip to main content

A Python library for dynamical systems, reservoir computing, and attention mechanisms.

Project description

AERes

Overview

AERes is a Python package for experimenting with the attention-enhanced reservoir architecture using PyTorch. This library includes modules to simulate dynamical systems like the Lorenz attractor, implement reservoir computing models, and apply linear attention mechanisms.

Installation

You can install AERes using pip:

pip install aeres

Quick Start

This guide will help you get started with the AERes library, demonstrating how to simulate a dynamical system, utilize reservoir computing, and apply both Ridge Regression and a linear attention model for analysis.

Simulating a Dynamical System

Begin by simulating a coupled Lorenz system, which is a common example of a chaotic dynamical system.

from AERes.dynamicalSystems import LorenzSimulator

# Initialize the Lorenz simulator with the 'lorenz_coupled' configuration
lorenz_simulator = LorenzSimulator(function_name='lorenz_coupled')

# Perform the simulation and retrieve the data split into training and testing sets
X_train, Y_train, X_test, Y_test = lorenz_simulator.simulate_lorenz()

Simulating a Reservoir

Process the simulated data through a reservoir computing system to enhance its features for further analysis.

from AERes.reservoir import Reservoir

# Create an instance of the Reservoir with specified parameters
reservoir = Reservoir(X_train, number_nodes=10, input_dimension=X_train.shape[1], seed=1, standardize=True)

Training a Ridge Regression Model

Utilize a simple linear model for a baseline comparison.

from sklearn.linear_model import Ridge

# Train a Ridge Regression model on the processed states
ridge_model = Ridge(alpha=1.0)
ridge_model.fit(reservoir.states, Y_train)

# Make predictions on the training data
ridge_predictions = ridge_model.predict(reservoir.states)

Implementing the Linear Attention Model

Set up and train a linear attention model to focus on important features dynamically.

from AERes.attention import LinearAttentionTrainer

# Initialize the trainer for the Linear Attention model with the reservoir states
trainer = LinearAttentionTrainer(reservoir.states, Y_train, layer_type="linear")

# Train the model over 100 epochs
trainer.train(epochs=100)

Evaluating the Models

Evaluate the performance of both models to understand their effectiveness.

# Calculate the Mean Squared Error (MSE) for the Ridge Regression model
ridge_loss = trainer.MSELoss(ridge_predictions, Y_train)
print(f'Ridge Regression MSE for training: {ridge_loss.item()}')

# Evaluate the trained attention model on the testing data
trainer.evaluate(reservoir.states, Y_test)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

AERes-0.1.0.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

AERes-0.1.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file AERes-0.1.0.tar.gz.

File metadata

  • Download URL: AERes-0.1.0.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for AERes-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a7e8fab45fe49ed91c36275960e42b47d190710327b96769ad580d6ddceb8a8b
MD5 9c72b2a3a3f69094ab70c1d430efef37
BLAKE2b-256 286a318a548f27bee2c1eff775da3ce457cdc8fb4dce71ba08a7ea492e7eca81

See more details on using hashes here.

File details

Details for the file AERes-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: AERes-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for AERes-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b68da4408032ae5e2127b5005a0dc5776d3ba966a00ac0b383d1e8337d835510
MD5 f15d5e3b06f1989971398e466d688de8
BLAKE2b-256 95a8265063081336f2ad12fb71f9843f29ab678fad79543fb4188f271c9a9f3e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page