Brian (oprogramowanie)
Deweloperzy | Romain Brette, Dan Goodman, Marcel Stimberg |
---|---|
Wersja stabilna | |
Magazyn | |
Napisane w | Pyton |
System operacyjny | Międzyplatformowe |
Typ | Oprogramowanie sieci neuronowych |
Licencja | CeCILL |
Strona internetowa |
Brian to pakiet Pythona o otwartym kodzie źródłowym do tworzenia symulacji sieci impulsowych neuronów.
Detale
Brian jest skierowany do badaczy opracowujących modele oparte na sieciach kolczastych neuronów . Ogólny projekt ma na celu maksymalizację elastyczności, prostoty i czasu rozwoju użytkowników. Użytkownicy określają modele neuronów, podając ich równania różniczkowe w standardowej postaci matematycznej jako ciągi, tworzą grupy neuronów i łączą je za pomocą synaps. Kontrastuje to z podejściem przyjętym przez wiele symulatorów neuronowych, w których użytkownicy wybierają z predefiniowanego zestawu modeli neuronów.
Brian jest napisany w Pythonie. Obliczeniowo opiera się na koncepcji generowania kodu: użytkownicy określają model w Pythonie, ale za kulisami Brian generuje, kompiluje i uruchamia kod w jednym z kilku języków (w tym Python, Cython i C++). Ponadto istnieje tryb „samodzielny”, w którym Brian generuje całe drzewo kodu źródłowego C++ bez zależności od Briana, umożliwiając uruchamianie modeli na platformach, na których Python nie jest dostępny.
Przykład
Poniższy kod definiuje, uruchamia i wykreśla losowo połączoną sieć nieszczelnych neuronów integrujących i odpalających z wykładniczymi prądami hamującymi i pobudzającymi.
z brian2 import * eqs = """ dv/dt = (ge+gi-(v+49*mV))/(20*ms) : volt dge/dt = -ge/(5*ms) : volt dgi/ dt = -gi/(10*ms): volt """ P = grupa neuronów ( 4000 , eqs , próg = "v>-50*mV" , reset = "v=-60*mV" ) P . v = - 60 * mV Pe = P [: 3200 ] Pi = P [ 3200 :] Ce = Synapsy ( Pe , P , on_pre = "ge+=1,62*mV" ) Ce . połącz ( p = 0,02 ) Ci = Synapsy ( Pi , P , on_pre = "gi-=9*mV" ) Ci . połącz ( p = 0,02 ) M = SpikeMonitor ( P ) uruchom ( 1 * sekunda ) wykres ( M. t / ms , M. i , „ .” ) pokaż ( )
Porównanie z innymi symulatorami
Brian jest przede wszystkim, choć nie wyłącznie, ukierunkowany na modele neuronów z pojedynczym przedziałem. Symulatory skupione na modelach wieloprzedziałowych to Neuron , GENESIS i jego pochodne.
Brian koncentruje się na elastyczności i łatwości użytkowania, a także obsługuje tylko symulacje działające na jednej maszynie. Symulator NEST zawiera narzędzia do dystrybucji symulacji w klastrze.
przypisy
- Goodman, D. i Brette, R. (2008). „Brian: symulator do wzmacniania sieci neuronowych w Pythonie” , Front. Neuroinform. 2:5. doi : 10.3389/neuro.11.005.2008 PMID 19115011
- Goodman, DFM i Brette, R. (2009). „Symulator Briana” , przód. Neuronauka. doi : 10.3389/neuro.01.026.2009