Skip to main content

🔎 Overview

A minimalistic Python library for EEG/MEG deep learning research, primarely focused on self-supervised learning.

📦 Installation

Either clone this repository and perform a local install accordingly

git clone https://github.com/neurocode-ai/neurocode.git
cd neurocode
poetry install

or install the most recent release from the Python Package Index (PyPI).

pip install neurocode

🚀 Example usage

Below you can see an example adapted for a SSL training workflow using the SimCLR framework.

import torch

from pytorch_metric_learning import losses
from neurocode.datasets import SimulatedDataset, RecordingDataset
from neurocode.samplers import SignalSampler
from neurocode.models import SignalNet
from neurocode.training import SimCLR
from neurocode.datautil import manifold_plot, history_plot

sample_data = SimulatedDataset("sample", seed=7815891891337)
sample_data.read_from_file("MEG/sample/sample_audvis_raw.fif")

# create random extrapolated data from the raw MEG recording,
# you need to provide a location to a forward solution (source space) to use
sample_data.simulate("MEG/sample/sample_audvis-meg-eeg-oct-6-fwd.fif")

dataset = RecordingDataset(sample_data.data(), sample_data.labels(), sfreq=200)
train, valid = dataset.train_valid_split(split=0.75)

samplers = {
  'train': SignalSampler(train.data(), train.labels(), train.info(), ...),
  'valid': SignalSampler(valid.data(), valid.labels(), valid.info(), ...),
}

device = "cuda" if torch.cuda.is_available() else "cpu"
model = SignalNet(...)
optimizer = torch.optim.Adam(model.parameters(), ...)
scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, ...)
criterion = losses.NTXentLoss()

# train the neural network using the self-supervised learning SimCLR framework,
# save or plot the history to see training loss evolution
simclr = SimCLR(model, device, ...)
history = simclr.fit(samplers, save_model=True)

📋 License

All code is to be held under a general MIT license, please see LICENSE for specific information.

Metadata

Release files for neurocode 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neurocode 1.0.0
File Size Uploaded
neurocode-1.0.0.tar.gz 27.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for neurocode 1.0.0
File Interpreter ABI Platform
neurocode-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 80.8 kB

Release files / neurocode-1.0.0.tar.gz

Download URL neurocode-1.0.0.tar.gz
Size 27.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e746837720a48169db9ffa3429f1c82108c60c988fa1e140fb9078e97d9b961b
BLAKE2b-256 checksum
How to use checksums
250a58c4e297150550bd1f59a901a83a4296f761b7180294ec5795b77786cd63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1016-azure

Release files / neurocode-1.0.0-py3-none-any.whl

Download URL neurocode-1.0.0-py3-none-any.whl
Size 53.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
66d256484e44d8ace1f652c1a83c8532ce48f94f2614a23f046b4d2bcd637aaa
BLAKE2b-256 checksum
How to use checksums
e5b4b03c81b8cc0a3244cfa3b4ddad976c28f1e184e42bc496a57b63ca54a6c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1016-azure

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page