def run_network(options): '''Run network with given `options` and return the dictionary that would be saved to an output file. ''' o = options seed_gen = TrialSeedGenerator(o.master_seed) stateMonParams = {'start': o.time - o.stateMonDur} nrec_spikes_e = None # all neurons nrec_spikes_i = 10 d = {} if "trials" not in d.keys(): d['trials'] = [] overalT = 0. ################################################################################ for trial_idx in range(len(d['trials']), o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx) d['invalidated'] = 1 ei_net = BasicGridCellNetwork(o, simulationOpts=None, nrec_spikes=(nrec_spikes_e, nrec_spikes_i), stateRecParams=(stateMonParams, stateMonParams)) if o.velON and not o.constantPosition: ei_net.setVelocityCurrentInput_e() posIn = ConstPosInputs(0, 0) if o.constantPosition else None ei_net.setPlaceCells(posIn=posIn) try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Trying to save the simulated data if possible...") ei_net.endSimulation() d['trials'].append(ei_net.getAllData()) constrT, simT, totalT = ei_net.printTimes() overalT += totalT print("Script total run time: {0} s".format(overalT)) ################################################################################ return d
def run_network(options): '''Run network with given `options` and return the dictionary that would be saved to an output file. ''' o = options seed_gen = TrialSeedGenerator(o.master_seed) stateMonParams = { 'start' : o.time - o.stateMonDur } nrec_spikes_e = None # all neurons nrec_spikes_i = 10 d = {} if "trials" not in d.keys(): d['trials'] = [] overalT = 0. ################################################################################ for trial_idx in range(len(d['trials']), o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx) d['invalidated'] = 1 ei_net = BasicGridCellNetwork(o, simulationOpts=None, nrec_spikes=(nrec_spikes_e, nrec_spikes_i), stateRecParams=(stateMonParams, stateMonParams)) if o.velON and not o.constantPosition: ei_net.setVelocityCurrentInput_e() posIn = ConstPosInputs(0, 0) if o.constantPosition else None ei_net.setPlaceCells(posIn=posIn) try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Trying to save the simulated data if possible...") ei_net.endSimulation() d['trials'].append(ei_net.getAllData()) constrT, simT, totalT = ei_net.printTimes() overalT += totalT print("Script total run time: {0} s".format(overalT)) ################################################################################ return d
'''Main simulation run: Only export E and I connections.''' from __future__ import absolute_import, print_function, division from grid_cell_model.models.parameters import getOptParser from grid_cell_model.models.gc_net_nest import BasicGridCellNetwork from grid_cell_model.models.seeds import TrialSeedGenerator from simtools.storage import DataStorage parser = getOptParser() (o, args) = parser.parse_args() output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'w') seed_gen = TrialSeedGenerator(int(o.master_seed)) out = [] overalT = 0. ################################################################################ for trial_idx in range(o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx) d['master_seed'] = int(o.master_seed) d['invalidated'] = 1 ei_net = BasicGridCellNetwork(o, simulationOpts=None) ei_net.endConstruction() ei_net.beginSimulation()
parser.add_argument("--bcON", type=int, choices=[0, 1], default=0, help="Border cell input ON?") (o, args) = parser.parse_args() output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'w') d['trials'] = [] overalT = 0. stop = False ############################################################################### seed_gen = TrialSeedGenerator(int(o.master_seed)) for trial_idx in range(o.ntrials): seed_gen.set_generators(trial_idx) # Each trial is reproducible d['master_seed'] = int(o.master_seed) d['invalidated'] = 1 const_v = [-o.Ivel, 0.0] ei_net = ConstantVelocityNetwork(o, simulationOpts=None, vel=const_v) d['net_params'] = ei_net.getNetParams() # Common settings will stay try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Not saving the data. Trying to clean up if possible...") stop = True
data['stateMonF_e'] = [data['stateMonF_e'][0]] return data parser = getOptParser() (options, args) = parser.parse_args() output_fname = "{0}/{1}job{2:05}_output.h5".format(options.output_dir, options.fileNamePrefix, options.job_num) d = DataStorage.open(output_fname, 'a') if "trials" not in d.keys(): d['trials'] = [] seed_gen = TrialSeedGenerator(int(options.master_seed)) overalT = 0. ############################################################################### for trial_idx in range(len(d['trials']), options.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx) d['master_seed'] = int(options.master_seed) d['invalidated'] = 1 try: ei_net = BasicGridCellNetwork(options, simulationOpts=None) const_v = [0.0, 0.0] ei_net.setConstantVelocityCurrent_e(const_v)
logger.info('bumpCurrentSlope is NaN. Not performing the simulation') exit(0) else: logger.info("bumpCurrentSlope: {0}".format(o.bumpCurrentSlope)) stateMonParams = {'start': o.time - o.stateMonDur} nrec_spikes_e = None # all neurons nrec_spikes_i = o.nrec_spikes_i output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'a') if ("trials" not in d.keys()): d['trials'] = [] seed_gen = TrialSeedGenerator(int(o.master_seed)) if len(d['trials']) == 0: d['master_seed'] = int(o.master_seed) else: try: seed_gen.check_master_seed(d['master_seed'], int(o.master_seed)) except ValueError as e: d.close() raise e overalT = 0. stop = False ############################################################################### for trial_idx in range(len(d['trials']), o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx)
from grid_cell_model.models.gc_net_nest import ConstantVelocityNetwork from grid_cell_model.models.seeds import TrialSeedGenerator from simtools.storage import DataStorage parser = getOptParser() (o, args) = parser.parse_args() output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'w') d['trials'] = [] overalT = 0. stop = False ############################################################################### seed_gen = TrialSeedGenerator(int(o.master_seed)) for trial_idx in range(o.ntrials): seed_gen.set_generators(trial_idx) # Each trial is reproducible d['master_seed'] = int(o.master_seed) d['invalidated'] = 1 const_v = [0.0, -o.Ivel] ei_net = ConstantVelocityNetwork(o, simulationOpts=None, vel=const_v) d['net_params'] = ei_net.getNetParams() # Common settings will stay try: ei_net.simulate(o.time, printTime=o.printTime) except NESTError as e: print("Simulation interrupted. Message: {0}".format(str(e))) print("Not saving the data. Trying to clean up if possible...") stop = True
len(trial['IvelData']) * o.dIvel, o.dIvel) d.flush() (o, args) = parser.parse_args() o.master_seed = int(o.master_seed) output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'a') if ("trials" not in d.keys()): d['trials'] = [] # Initialise seeds and check their consistency with previously saved data seed_gen = TrialSeedGenerator(o.master_seed) if len(d['trials']) == 0: d['master_seed'] = o.master_seed else: try: seed_gen.check_master_seed(d['master_seed'], o.master_seed) except ValueError as e: d.close() raise e overalT = 0. oldNTrials = len(d['trials']) ################################################################################ for trial_idx in range(o.ntrials): print("\n\t\tStarting/appending to trial no. {0}\n".format(trial_idx))
if 'IvelVec' not in trial.keys() and 'IvelData' in trial.keys(): logger.info("Data present, but IvelVec is missing. Fixing...") trial['IvelVec'] = np.arange(.0, len(trial['IvelData'])*o.dIvel, o.dIvel) d.flush() (o, args) = parser.parse_args() output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'a') if ("trials" not in d.keys()): d['trials'] = [] # Initialise seeds and check their consistency with previously saved data seed_gen = TrialSeedGenerator(int(o.master_seed)) if len(d['trials']) == 0: d['master_seed'] = int(o.master_seed) else: try: seed_gen.check_master_seed(d['master_seed'], int(o.master_seed)) except ValueError as e: d.close() raise e overalT = 0. oldNTrials = len(d['trials']) ################################################################################ for trial_idx in range(o.ntrials): print("\n\t\tStarting/appending to trial no. {0}\n".format(trial_idx)) if trial_idx >= oldNTrials: # Create new trial
'''Main simulation run: Only export E and I connections.''' from __future__ import absolute_import, print_function, division from grid_cell_model.models.parameters import getOptParser from grid_cell_model.models.gc_net_nest import BasicGridCellNetwork from grid_cell_model.data_storage import DataStorage from grid_cell_model.models.seeds import TrialSeedGenerator parser = getOptParser() (o, args) = parser.parse_args() output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'w') seed_gen = TrialSeedGenerator(o.master_seed) out = [] overalT = 0. ################################################################################ for trial_idx in range(o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx) d['master_seed'] = o.master_seed d['invalidated'] = 1 ei_net = BasicGridCellNetwork(o, simulationOpts=None) ei_net.endConstruction() ei_net.beginSimulation() data = ei_net.getNetParams()
logger.info("bumpCurrentSlope: {0}".format(o.bumpCurrentSlope)) stateMonParams = { 'start' : o.time - o.stateMonDur } nrec_spikes_e = None # all neurons nrec_spikes_i = o.nrec_spikes_i output_fname = "{0}/{1}job{2:05}_output.h5".format(o.output_dir, o.fileNamePrefix, o.job_num) d = DataStorage.open(output_fname, 'a') if ("trials" not in d.keys()): d['trials'] = [] seed_gen = TrialSeedGenerator(int(o.master_seed)) if len(d['trials']) == 0: d['master_seed'] = int(o.master_seed) else: try: seed_gen.check_master_seed(d['master_seed'], int(o.master_seed)) except ValueError as e: d.close() raise e overalT = 0. stop = False ############################################################################### for trial_idx in range(len(d['trials']), o.ntrials): print("\n\t\tStarting trial no. {0}\n".format(trial_idx)) seed_gen.set_generators(trial_idx)