Open sf-issues opened 12 years ago
This issue dates back to 2011. I certainly hope there is nothing wrong with Homeostatic response anymore as GCAL has now been published!
I'm not too worried as I am fairly sure we rewrote HomeostaticResponse
after this issue was created (e.g. to get rid of Jan's magic number and enable continuous homeostatic update).
Looks to me like Chris's first example still behaves the same way:
$ ./topographica -i -p 'dataset="Nature"' -p cortex_density=12 -p retina_density=12 -p lgn_density=12 examples/gcal.ty -c "topo.sim.run(0)" -c "from topo import pattern; topo.sim['Retina'].set_input_generator(pattern.Gaussian())" topo_t000000.00_c1>>> topo.sim['V1'].output_fns[0].target_activity=1 topo_t000000.00_c2>>> topo.sim.run(1) topo_t000001.00_c3>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[3]:144.0 topo_t000001.00_c4>>> topo.sim['V1'].activity.sum() Out[4]:85.362120926173986
I'm not sure what that means, but it does seem like this issue is still relevant if it ever was!
Converted from SourceForge issue 3435657, submitted by ceball Submit Date: 2011-11-09 17:36 GMT
This is obscure, I think, but still a bug: shouldn't the last activity printed in the two examples below be the same?
$ ./topographica -i -p 'dataset="Nature"' -p cortex_density=12 -p retina_density=12 -p lgn_density=12 examples/gcal.ty -c "from topo import pattern; topo.sim['Retina'].set_input_generator(pattern.Gaussian())" topo_t000000.00_c1>>> topo.sim['V1'].output_fns[0].target_activity=1 topo_t000000.00_c2>>> topo.sim.run(1) topo_t000001.00_c3>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[3]:143.70621296664692 topo_t000001.00_c4>>> topo.sim['V1'].activity.sum() Out[4]:367.4271529557891
$ ./topographica -i -p 'dataset="Nature"' -p cortex_density=12 -p retina_density=12 -p lgn_density=12 examples/gcal.ty -c "from topo import pattern; topo.sim['Retina'].set_input_generator(pattern.Gaussian())" topo_t000000.00_c1>>> topo.sim['V1'].output_fns[0].target_activity=1000 topo_t000000.00_c2>>> topo.sim['V1'].override_plasticity_state(False) topo_t000000.00_c3>>> topo.sim.run(1) topo_t000001.00_c4>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[4]:144000.0 topo_t000001.00_c5>>> topo.sim['V1'].activity.sum() Out[5]:367.43236060234204 topo_t000001.00_c6>>> topo.sim['V1'].output_fns[0].target_activity=1 topo_t000001.00_c7>>> topo.sim['V1'].override_plasticity_state(True) topo_t000001.00_c8>>> topo.sim.run(1) topo_t000002.00_c9>>> topo.sim['V1'].output_fns[0].y_avg.sum() Out[9]:142709.2085762278 topo_t000002.00_c10>>> topo.sim['V1'].activity.sum() Out[10]:0.0
The problem is the contents of the "if first_call" part of HomeostaticResponse'scall are altering state permanently regardless of the status of plastic. I guess this is unlikely to affect anyone in practise, although maybe there's also a similar problem with randomized_init and it would show up with maps measured at time 0? My brain can't follow the situation through...
(r11819, no diffs)