Hi Maryada,
It might be the case that Nest 2.20 installation was causing the issue (I kept it for my
earlier implementation)
OK, that makes sense. That is one downside of Python that if xyz is a class instance,
xyz.anything = ... is legal code, just not with the intended effect.
so I deleted everything and build the newest version. With NEST 3.1, things look perfectly
fine.
For now, I would rather not install 3.0 and proceed with v3.1
Good. We generally recommend to use the newest NEST version available, so going directly
for 3.1 is the right thing to do :).
Best,
Hans Ekkehard
On Thu, Nov 25, 2021 at 8:31 AM Hans Ekkehard Plesser
<hans.ekkehard.plesser@nmbu.no<mailto:hans.ekkehard.plesser@nmbu.no>> wrote:
Hi,
I just did the following test with the current NEST master and NEST 3.1 and there things
seem to work as expected. I get different membrane potentials for neurons with seeds 100
and 1000 when initializing on creation:
In [8]: nest.ResetKernel()
In [9]: nest.rng_seed = 100
In [10]: n = nest.Create('iaf_psc_alpha', 10, params={'V_m':
nest.random.normal(-51., 10)})
In [11]: n.V_m
Out[11]:
(-48.59349994516202,
-62.391924115381116,
-41.373005254994425,
-57.40416211886578,
-55.00625628226899,
-58.390425179047895,
-55.24506539841326,
-53.025705514351856,
-51.605353014049754,
-55.422455776310166)
In [12]: nest.ResetKernel()
In [13]: nest.rng_seed = 1000
In [14]: n = nest.Create('iaf_psc_alpha', 10, params={'V_m':
nest.random.normal(-51., 10)})
In [15]: n.V_m
Out[15]:
(-61.99342803053577,
-43.36557257654475,
-56.96149010671454,
-46.802621999699895,
-38.1809073583283,
-46.72672336036912,
-52.65744001330793,
-54.65343890518882,
-45.195683344187955,
-38.82283445344244)
This also works as expected if I draw at the Python level
In [27]: nest.ResetKernel()
In [28]: nest.rng_seed = 100
In [29]: [nest.random.normal(-51., 10).GetValue() for _ in range(5)]
Out[29]:
[-49.30997769812133,
-49.87958247942526,
-49.81013407516723,
-53.261688886622565,
-57.7916578766182]
In [30]: nest.ResetKernel()
In [31]: nest.rng_seed = 1000
In [32]: [nest.random.normal(-51., 10).GetValue() for _ in range(5)]
Out[32]:
[-34.1615153889346,
-31.487943150805098,
-46.29074242569416,
-49.91770982448142,
-52.23367995498362]
So it seems strange that it does not work for you. Is there any chance you have a mix of
older versions? Could you delete all build and install directories and start from scratch
(assuming you built NEST yourself; otherwise, how did you install NEST?).
Best,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no<mailto:hans.ekkehard.plesser@nmbu.no>
Home
http://arken.nmbu.no/~plesser
On 24/11/2021, 18:08, "Maryada Maryada"
<er.maryada@gmail.com<mailto:er.maryada@gmail.com>> wrote:
Hi Stine,
I got the answer from your follow-up questions, So rng_type was default but it's
interesting that NEST 3.0 does not really have any effect on randomization when I set
rng_seed using nest.rng_seed but only if I use nest.SetKernalStatus.....
if you run the following code
import nest
nest.ResetKernel()
nest.rng_seed = 307
# nest.SetKernelStatus({'rng_seed': 33})
for _ in range(10):
v_m = nest.random.normal(mean=-51., std=10.)
print(v_m.GetValue())
print(nest.rng_seed)
# print(nest.GetKernelStatus('rng_seed'))
No matter what value you set for seed the out is always the same set of 10 values. and
nest.rng_seed value is updated for different set values.
However, It works if I use the old syntax.
I am assuming it's not a bug but is what 3.1 offers and was added partially in 3.0
version already.
On Wed, Nov 24, 2021 at 3:22 PM Stine Brekke Vennemo
<stine.brekke.vennemo@nmbu.no<mailto:stine.brekke.vennemo@nmbu.no>> wrote:
Dear Maryada,
Am I understanding you correctly that every time you call v_m.GetValue() you get the same
results?
I am not able to reproduce your results, I get a new value for V_m every time I switch
rng_seed, and also if I call v_m.GetValue() a second time with the same seed without doing
a ResetKernel.
To test that you are actually setting a new rng seed, maybe do a print(nest.rng_seed) to
make sure?
What is your output if you type print(nest.rng_type)?
Best wishes,
Stine
________________________________
From: Maryada Maryada <er.maryada@gmail.com<mailto:er.maryada@gmail.com>>
Sent: Monday, November 22, 2021 12:40
To: NEST User Mailing List
<users@nest-simulator.org<mailto:users@nest-simulator.org>>
Subject: [NEST Users] Random seed in NEST 3.0
Dear NEST users,
As I understood from the documentation unless you set the seed using nest.rng_seed,
nest.random.normal (for instance) should return the same value
nest.ResetKernel()
nest.rng_seed = 21#69696
v_m = nest.random.normal(mean=-51., std=10.)
v_m.GetValue()
In this code, I always receive the same v_m value for both cases, if the seed is set as 21
or 69696. The only time it changes is if I remove ResetKernel() call, which then is
expected to return different values irrespective of rng_seed.
With this code below, I also got the same results irrespective of rng_seed value
nest.ResetKernel()
nest.rng_seed = 3333#69696
for _ in range(10):
v_m = nest.random.normal(mean=-51., std=10.)
print(v_m.GetValue())
So, maybe rng_seed doesn't reflect on nest.random.normal distribution. However, then
how can I make sure it draws a different set of values?
--
Thanks and Regards
Maryada
_______________________________________________
NEST Users mailing list --
users@nest-simulator.org<mailto:users@nest-simulator.org>
To unsubscribe send an email to
users-leave@nest-simulator.org<mailto:users-leave@nest-simulator.org>
--
Thanks and Regards
Maryada
_______________________________________________
NEST Users mailing list --
users@nest-simulator.org<mailto:users@nest-simulator.org>
To unsubscribe send an email to
users-leave@nest-simulator.org<mailto:users-leave@nest-simulator.org>
--
Thanks and Regards
Maryada