Определить подгруппу в Brian2 (библиотека на питоне) - PullRequest
0 голосов
/ 09 декабря 2018

Я пытался протестировать всплывшую нейронную сеть в Python, используя Brian2.Я получил эту ошибку:

 File "C:\ProgramData\Anaconda3\envs\snn\lib\site-packages\brian2\groups\group.py", line 393, in __getattr__
raise AttributeError('No attribute with name ' + name)

AttributeError: Нет атрибута с именем подгруппы

Моя основная проблема заключается в создании подгруппы G (NeuronGroup).Первая подгруппа - возбуждающие нейроны, а вторая - тормозные нейроны.

G = NeuronGroup(4000, model=eqs, threshold=Vt, reset=Vr)

Ge = G.subgroup(3200) # Excitatory neurons

Gi = G.subgroup(800) # Inhibitory neurons

Может кто-нибудь помочь мне решить эту ошибку?Благодарю.Код для этого SNN (всплеск нейронной сети):

import brian2
from brian2 import *
from brian2 import start_scope

taum = 20 * ms # membrane time constant
taue = 5 * ms # excitatory synaptic time constant
taui = 10 * ms # inhibitory synaptic time constant
Vt = -50 * mV # spike threshold
Vr = -60 * mV # reset value
El = -49 * mV # resting potential
we = (60 * 0.27 / 10) * mV # excitatory synaptic weight
wi = (20 * 4.5 / 10) * mV # inhibitory synaptic weight
eqs = Equations('''
dV/dt = (ge-gi-(V-El))/taum : volt
dge/dt = -ge/taue : volt
dgi/dt = -gi/taui : volt
''')
G = NeuronGroup(4000, model=eqs, threshold=Vt, reset=Vr)
Ge = G.subgroup(3200) # Excitatory neurons
Gi = G.subgroup(800) # Inhibitory neurons
Ce = Connection(Ge, G, 'ge', sparseness=0.02, weight=we)
Ci = Connection(Gi, G, 'gi', sparseness=0.02, weight=wi)
M = SpikeMonitor(G)
MV = StateMonitor(G, 'V', record=0)
Mge = StateMonitor(G, 'ge', record=0)
Mgi = StateMonitor(G, 'gi', record=0)
G.V = Vr + (Vt - Vr) * rand(len(G))
run(500 * ms)

subplot(211)
raster_plot(M, title='The CUBA network', newfigure=False)
subplot(223)
plot(MV.times / ms, MV[0] / mV)
xlabel('Time (ms)')
ylabel('V (mV)')
show()
subplot(224)
plot(Mge.times / ms, Mge[0] / mV)
plot(Mgi.times / ms, Mgi[0] / mV)
xlabel('Time (ms)')
ylabel('ge and gi (mV)')
legend(('ge', 'gi'), 'upper right')
show()

1 Ответ

0 голосов
/ 10 декабря 2018

Определение подгруппы в Brian2 согласно следующему:

Например, у нас есть p (нейронная группа), и мы хотим иметь две ее подгруппы.

P = NeuronGroup (4000, модель =eqs, порог = 'v> -20 * мВ', огнеупор = 3 * мс, метод = 'экспоненциальный_уилер')

Pe = P [: 3200]

Pi = P [3200:]

В своем вопросе я использовал указания Брайана, а не Брайана2!поэтому я получил ошибку.Будьте осторожны при использовании инструкций Брайана2 и Брайана!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...