def sim_run_flush(tFlush,nFlush):
'''
Run simulation for nFlush*tFlush seconds,
Flush probes every tFlush of simulation time,
(only flush those that don't have 'weights' in their label names)
'''
weighttimeidxold = 0
#doubledLearningRate = False
for duration in [tFlush]*nFlush:
_,_,_,_,realtime = os.times()
print("Finished till",sim.time,'s, in',realtime-realtimeold,'s')
sys.stdout.flush()
# save weights if weightdt or more has passed since last save
weighttimeidx = int(sim.time/weightdt)
if weighttimeidx > weighttimeidxold:
weighttimeidxold = weighttimeidx
save_current_weights(False,sim.time)
# flush probes
for probe in sim.model.probes:
# except weight probes (flushed in save_current_weights)
# except error probe which is saved fully in ..._end.shelve
if probe.label is not None:
if 'weights' in probe.label or 'error' in probe.label:
break
del sim._probe_outputs[probe][:]
## if time > 1000s, double learning rate
#if sim.time>1000. and not doubledLearningRate:
# changeLearningRate(4.) # works only if excPESDecayRate = None
# doubledLearningRate = True
# run simulation for tFlush duration
sim.run(duration,progress_bar=False)
###
### run the simulation, with flushing for learning simulations ###
###
input_ff_rec_learnoutput_nengo_ocl.py 文件源码
python
阅读 20
收藏 0
点赞 0
评论 0
评论列表
文章目录