Your Bridge to Neuromorphic at the Edge
Talamo is a complete Software Development Kit (SDK) for Edge AI development. It’s designed to seamlessly bridge familiar machine learning frameworks to the powerful world of Spiking Neural Networks (SNNs).
Low-Code Solution
Spend less time writing boilerplate code and more time innovating. Our high-level API simplifies the entire workflow.
No Prior SNN Knowledge Required
You don't need to be an SNN expert. If you can build a model in PyTorch or Tensorflow, you can create a model for our hardware.
Easy Deployment & Compilation
Talamo handles the complex conversion and compilation, turning your existing models into efficient hardware-ready applications.
From Model to Deployment, Simplified
-
PyTorch Extension for Spiking Neural Networks (SNNs)
-
Spike Encoders & Decoders to transform numerical data into spikes
-
Modular application pipeline design
Convert End-to-End application into C Source Code
Standard MCU
Programming Workflow
Build your model journey with Talamo
Pulsar brings real-time, event-driven intelligence directly to your devices, enabling sub-millisecond responsiveness at microwatt power levels.
- from talamo.encoders.c1 import IFEncoder
- from talamo.decoders import MaxRateDecoder
- from talamo.snn.containers import Snn
- from talamo.pipeline.elements import Pipeline, MFCC
- num_features = 32
- snn_model = MySNNModel()
- # End-to-End SNN pipeline including preprocessing
- pipe = Pipeline(
- steps=[
-
MFCC(n_mfcc=num_features, n_fft=512, hop_length=512, n_mels=128, sample_rate=22050),
# Mel-frequency cepstral coefficients preprocessing -
IFEncoder(num_encoder_channels=num_features),
# Integrate-and-fire encoder - Snn(snn_model),
- MaxRateDecoder(),
- ]
- )
- import torch
- lr = 0.2
- batch_size = 128
- # Parameters for different pipeline steps can be trained
- optimizer = torch.optim.Adam([
- {‘params’: snn_params, “lr”: lr},
- {‘params’: encoder_params, “lr”: lr*2}], lr=lr)
- loss_fn = torch.nn.NLLLoss()
- # Built in training function or implement custom training loop
- pipe.fit(
- dataset=train_dataset,
- epochs=50,
- dataloader_type=torch.utils.data.DataLoader,
- dataloader_args={“batch_size”: batch_size, “shuffle”: True},
- optimizer=optimizer,
- loss_function=loss_fn,
- verbose=2,
- )
-
from talamo.quantization
import RoundAndClamp - # Quantize using talamo quantizer
- weight_quantizer = RoundAndClamp(all_params=pipe.query_torch_params(“*.weight”), lower_limit=-128, upper_limit=127)
- pipe.quantize(quantizers=[weight_quantizer])
-
from talamo.device.c1
import Soc - innatera_soc = Soc()
-
pipe.to(innatera_soc)
# Deploy pipeline to Innatera Soc - pipe.evaluate(dataset=test_dataset)
The Building Blocks for Innovation: A Powerful Development Environment
Contact us
Based on your request type, please use the relevant form below to contact us. Please use the ‘Sales’ form if you are interested in a commercial engagement with Innatera.