Tutorial 47: Auto-Fit -- Neuron Model Fitting¶
Record from a real neuron. Auto-Fit sweeps 13 models from the library, optimizes parameters, ranks by fit quality. The best model is ready for simulation and FPGA deployment.
1. Prepare Recording¶
import numpy as np
from sc_neurocore.neurons.models.hodgkin_huxley import HodgkinHuxleyNeuron
hh = HodgkinHuxleyNeuron()
current = np.zeros(500)
current[50:450] = 10.0
voltage = np.zeros(500)
for t in range(500):
hh.step(float(current[t]))
voltage[t] = hh.v
2. Fit Models¶
from sc_neurocore.autofit import fit
results = fit(voltage, current, dt=0.1, top_k=5)
for r in results:
print(f"{r.model_name}: RMSE={r.rmse:.2f}, score={r.combined_score:.3f}")
3. Extract Features¶
from sc_neurocore.autofit.features import extract_features
feats = extract_features(voltage, dt=0.1)
print(f"Spikes: {feats['spike_count']}, Rate: {feats['firing_rate']:.1f} Hz")
Fittable Models¶
LIF, HH, Izhikevich, AdEx, FitzHugh-Nagumo, Morris-Lecar, Hindmarsh-Rose, Lapicque, QIF, ExpIF, Alpha, Theta, Resonate-and-Fire.