Dissipation–Memory Budget for Stochastic RNNs / analyze_results.py

Mechanism failed

Raw ⬇ ZIP
 1import json
 2import numpy as np
 3r=json.load(open('results.json'))
 4rows=r['budget_sweep']
 5for rate in sorted(set(x['rate'] for x in rows)):
 6    q=sorted([x for x in rows if x['rate']==rate],key=lambda x:x['freq'])
 7    sl=np.polyfit(np.log([x['v2'] for x in q[:3]]),np.log([x['epsilon'] for x in q[:3]]),1)[0]
 8    print('rate',rate,'slow epsilon-v2 slope',sl)
 9for freq in sorted(set(x['freq'] for x in rows)):
10    q=[x for x in rows if x['freq']==freq]
11    sl=np.polyfit(np.log([x['sigma'] for x in q]),np.log([x['epsilon'] for x in q]),1)[0]
12    print('freq',freq,'epsilon-sigma slope',sl)
13for f in [0.03,0.1,0.3]:
14    q=sorted([x for x in rows if x['freq']==f],key=lambda x:x['rate'])
15    chosen=next((x for x in q if x['budget_ratio']>=.5),q[-1])
16    base=[x for x in q if x['rate']==1][0]
17    print('controller',f,'selected_rate',chosen['rate'],'baseline_mse',base['epsilon'],'controller_mse',chosen['epsilon'])
18print('ratio_summary',min(x['budget_ratio'] for x in rows),np.median([x['budget_ratio'] for x in rows]),max(x['budget_ratio'] for x in rows))