Bonjour,

je tente actuellement de coder un spiking neural network à convolution et avec délai axonal.

J'ai débuté cela en pytorch, seulement je bloque au codage du délai axonal...

Je souhaiterais en gros avoir un tenseur 10, 1, h, w avec 10 le pas de temps et h et w la dimension de l'entrée du SNN. L'entrée sous forme h, w sera multiplié par un tenseur masque de forme 10, 1, h, w rempli 1 parsemés pour produire un délai axonal propre pour chaque h, w, le résultat sera ajouté au premier tenseur décrit.

Donc un truc du type : tenseur += entrée * tenseurMasque

Ensuite je voudrais faire glisser les valeurs de ce tenseur pour simuler le passage du temps, de sorte que tenseur[1] devienne tenseur[0] etc

En cherchant sur internet j'ai trouvé torch.roll() mais est il le plus optimisé ?

Selon chatGPT je devrais utiliser plutôt un buffer circulaire, donc une liste, seulement je ne comprends pas en quoi ce serait plus optimisé, je ne vois même pas comment je pourrais placer l'entrée dans le buffer de manière optimisée...