Catalog PyPI
Back to packageRELEASE DETAILS

1.0.0

PyPI

acds

Archetype Computing Adaptive System

oscillatorspytorchrecurrent-neural-networksreservoir-computing
Published15 Oct 2026
Direct dependencies20
Transitive dependenciesNot calculated

README

Version 1.0.0 documentation

Archetype Computing and Adaptive System (ACDS)

EMERGE project funding acknowledgements

Archetype Computing and Adapting System for the EMERGE project, a project funded by the European Innovation Council (EIC) of the European Union (EU) under Grant Agreement 101070918.

The APIdoc can be found at this link.

Archetypes

The archetype package implements the Echo State Network model, the Long Short-Term memory model, and the Random Oscillators Network model. Each model is implemented as a Python class using the PyTorch library . The archetypes package defines the way each archetype performs computation and it is therefore at the center of the Archetype Computing System.

The archetype package also provided utility functions that influence the archetype computation. For example, currently available functions can create sparsely connected Archetype Networks or control the topology of the connections (ring topology, Toeplitz topology and others).

Benchmarks

The benchmarks package allows to easily create an instance of popular datasets and benchmarks. Currently, the package features the MNIST dataset, the Mackey-Glass chaotic dynamical system and the Adiac dataset (a real-world time series processing task).

The datasets are currently implemented via helper functions. Each dataset has its own helper functions that returns the training set, the validation set and the test set randomly sampled from the dataset. Each set is a PyTorch compatible dataset or dataloader, that automatically manages multiple iterations with mini-batches. Each dataset can implement a custom way of splitting the examples in the three sets. From the point of view of the user, this does not impact neither on the archetypes nor on the experiment where the dataset is then used.

Experiments

The experiments package currently provides three experiments. Each experiment is a main Python script that can be executed by directly running it with a Python interpreter. The Adiac experiment uses the Adiac dataset and trains either an RON model or an ESN model. The choice of the model can be controlled by parameters provided as input to the main script. The experiments logs the results to a text file with the train and validation metrics. The test metrics can be computed when the corresponding flag is activated (to distinguish between model selection and model assessment).

The sMNIST experiment follows the same approach, but it leverages the MNIST dataset, taken one pixel at a time (sequential MNIST) due to the use of recurrent archetypes.

Finally, the Mackey-Glass experiment uses the Mackey-Glass dataset and trains an RON model or an ESN model to predict future states given the current one. The logging functionalities remain the same across the three experiments. Each experiment describes all the accepted parameters at the beginning of the code.

Demo

The robots_demo package provides the code to run the EMERGE demo. Please, note that data is not shared through GitHub.

How to use

The project requires Python 3.11 or newer. Install from a checkout with pip:

git clone https://github.com/EU-EMERGE/archetype-computing-adaptive-system.git
cd archetype-computing-adaptive-system
python -m pip install .

For development, install the package in editable mode with the development tools:

python -m pip install -e ".[dev]"

make install also installs the package in editable mode into the active Python environment. With conda, activate the environment first (for example, conda activate tomato) and use make install PYTHON=python.

The first PyPI release will be 1.0.0. Once it is published, install it with:

python -m pip install acds
# Or pin the first release:
python -m pip install "acds==1.0.0"

The distribution and Python import are both named acds. These PyPI commands become available after the first release; use the checkout instructions above until then.

The evolutionary extra installs dependencies for acds.evolutionary:

python -m pip install ".[evolutionary]"
# After the PyPI release:
python -m pip install "acds[evolutionary]"

Graphviz rendering also requires the system Graphviz installation and its dot executable. Experiments and robot demos run from the source checkout and may need additional experiment-specific dependencies and external data.

For example, a model can be created without downloading any datasets:

import torch
from acds.archetypes import RandomizedOscillatorsNetwork

model = RandomizedOscillatorsNetwork(
    n_inp=1, n_hid=100, dt=0.01, gamma=1.0, epsilon=1.0
)
states, final_state = model(torch.randn(8, 50, 1))

If you want to run the sMNIST experiment with the RON model you can run:

    python experiments/smnist.py --ron --dataroot /path/where/to/download/mnist

Dataset directory

The library bundles raw datasets in acds/benchmarks/raw in both the wheel and source distribution. The directory contains the adiac folder where both train and test examples for Adiac are stored. It also contains the mackey_glass.csv file, where the Mackey-Glass dataset is saved. Locate these files after installing the package with:

from pathlib import Path
import acds.benchmarks

raw = Path(acds.benchmarks.__file__).parent / "raw"
train, validation, test = acds.benchmarks.get_adiac_data(
    raw / "adiac", bs_train=32, bs_test=64
)

Use a writable directory outside the installed package for downloaded datasets such as MNIST, and pass that directory as the experiment's dataroot.

Results

Results of the experiments are saved within the resultroot directory, provided as parameter to each script. Remember to create the directory before using it.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 20

Native requirements
20 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
aeon
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
aeon>=1.0runtime
build
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
build>=1.2; extra == "dev"runtime
commitizen
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
commitizen>=3.16; extra == "dev"runtime
deap
Environment
{
  "extras": "",
  "marker": "extra == \"evolutionary\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
deap; extra == "evolutionary"runtime
graphviz
Environment
{
  "extras": "",
  "marker": "extra == \"evolutionary\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
graphviz; extra == "evolutionary"runtime
gymnasium
Environment
{
  "extras": "",
  "marker": "extra == \"evolutionary\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
gymnasium; extra == "evolutionary"runtime
imageio
Environment
{
  "extras": "",
  "marker": "extra == \"evolutionary\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
imageio; extra == "evolutionary"runtime
matplotlib
Environment
{
  "extras": "",
  "marker": "extra == \"evolutionary\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
matplotlib; extra == "evolutionary"runtime
neat-python
Environment
{
  "extras": "",
  "marker": "extra == \"evolutionary\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
neat-python; extra == "evolutionary"runtime
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
numpy>=1.26.4runtime
pillow
Environment
{
  "extras": "",
  "marker": "extra == \"evolutionary\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pillow; extra == "evolutionary"runtime
pre-commit
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pre-commit>=3.6; extra == "dev"runtime
scikit-learn
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
scikit-learn>=1.3runtime
scipy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
scipy>=1.12.0runtime
sktime
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sktime>=0.30runtime
sphinx
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sphinx>=7; extra == "docs"runtime
sphinx-rtd-theme
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sphinx-rtd-theme>=2; extra == "docs"runtime
torch
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
torch>=2.2.1runtime
torchvision
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
torchvision>=0.17.1runtime
twine
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
twine>=6; extra == "dev"runtime

Distribution files

2 collected
acds-1.0.0-py3-none-any.whl

bdist_wheel · 809.24 KB · Python py3

Source file
acds-1.0.0.tar.gz

sdist · 783.35 KB · Python source

Source file

Repository

PENDING
eu-emerge/archetype-computing-adaptive-system

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:05 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:ee5ef7db589e4f16737f44437035ef5756cf5e4984146ffbb830c5e9e634078e

Other collected versions

View all collected versions →