PSANN: Parameterized Sine-Activated Neural Networks (sklearn-style, PyTorch backend)
Project description
PSANN - Parameterized Sine-Activated Neural Networks
Sklearn-style estimators built on PyTorch that use learnable sine activations, optional persistent state, and shared helpers for episodic (HISSO) training.
Quick links:
- API reference:
docs/API.md - Technical design notes:
TECHNICAL_DETAILS.md - Scenario walkthroughs:
docs/examples/README.md
Installation
python -m venv .venv
.\.venv\Scripts\Activate.ps1 # Windows PowerShell
# source .venv/bin/activate # macOS/Linux
pip install --upgrade pip
pip install -e . # editable install from source
Extras defined in pyproject.toml:
psann[sklearn]: adds scikit-learn for real BaseEstimator mixins and metricspsann[viz]: plotting helpers used in notebooks/examplespsann[dev]: pytest, ruff, black
Need pre-pinned builds (e.g. on Windows or air-gapped envs)? Use the compatibility constraints:
pip install -e . -c requirements-compat.txt
pyproject.toml is the authoritative dependency list. requirements-compat.txt mirrors the newest widely available wheels for NumPy, SciPy, and scikit-learn when you need lockstep installs.
Quick Start
Supervised regression
import numpy as np
from psann import PSANNRegressor
rs = np.random.RandomState(42)
X = np.linspace(-4, 4, 1000, dtype=np.float32).reshape(-1, 1)
y = 0.8 * np.exp(-0.25 * np.abs(X)) * np.sin(3.5 * X)
model = PSANNRegressor(
hidden_layers=2,
hidden_units=64,
epochs=200,
lr=1e-3,
early_stopping=True,
patience=20,
random_state=42,
)
model.fit(X, y, verbose=1)
print("R^2:", model.score(X, y))
Supervising extras outputs
Append extra columns to y or pass them separately. Extra heads are scheduled automatically when extras>0.
extras = np.stack([np.cos(X[:, 0]), np.sin(X[:, 0])], axis=1).astype(np.float32)
y_with_extras = np.concatenate([y[:, None], extras], axis=1)
model = PSANNRegressor(hidden_layers=2, hidden_units=64, extras=2)
model.fit(X, y_with_extras, verbose=1)
For streaming/time-series, LSM preprocessors, segmentation heads, and HISSO workflows, head to docs/examples/README.md.
Feature Highlights
- Learnable sine activations (
SineParam) with amplitude, frequency, and decay bounds - Shared
_fithelper powering PSANN, residual PSANN, and language-model estimators - Optional predictive extras with automatic target detection and rollout utilities
- Stateful controllers for streaming inference with warm-start and reset policies
- Convolutional variants that preserve spatial structure and support per-element outputs
- HISSO episodic training with reward hooks, supervised warm starts, and extras scheduling
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file psann-0.9.19.tar.gz.
File metadata
- Download URL: psann-0.9.19.tar.gz
- Upload date:
- Size: 176.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a099229e19d7979e3724f3f01ded70a74393abd1a0e2c8ceb78f0bb8e6a62ba
|
|
| MD5 |
50cbca3ed2d143e015bb317beb596b55
|
|
| BLAKE2b-256 |
5edf79364f6c9a18da6ac0183ca2692bee1c57328efeeb473477db7bd1f09c7f
|
File details
Details for the file psann-0.9.19-py3-none-any.whl.
File metadata
- Download URL: psann-0.9.19-py3-none-any.whl
- Upload date:
- Size: 96.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b62278eea4343e263a6843ec128b1331108e98914b891009f87ef1e3a326da41
|
|
| MD5 |
c0e7f14ee5029fa0c72316c8b500a012
|
|
| BLAKE2b-256 |
99fc7d825aa9d2ab764d139ac1ed506e3f5a26a816a11305a164aec83ed2658d
|