summaryrefslogtreecommitdiff
path: root/experiments/calib_tent.py
diff options
context:
space:
mode:
Diffstat (limited to 'experiments/calib_tent.py')
-rw-r--r--experiments/calib_tent.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/experiments/calib_tent.py b/experiments/calib_tent.py
new file mode 100644
index 0000000..a09fe93
--- /dev/null
+++ b/experiments/calib_tent.py
@@ -0,0 +1,18 @@
+import torch, collections, sys
+from sdil.data import make_tentmap, onehot
+from sdil.core import SDILNet, SDILConfig, sdil_step
+from sdil.baselines import BPNet, dfa_config, evaluate
+dev='cpu'
+L=int(sys.argv[1]) if len(sys.argv)>1 else 7
+tr,te,ni,no=make_tentmap(levels=L,n_in=3,n_train=50000,n_test=8000,seed=0,batch_size=128,device=dev)
+cnt=collections.Counter(te.y.tolist()); print(f"tent levels={L} balance {dict(cnt)}",flush=True)
+for W in [6,10,16]:
+ print(f"--- width={W} PLAIN relu (residual=0) ---",flush=True)
+ for d in [1,2,3,4,6,8]:
+ netb=BPNet([ni]+[W]*d+[2],act='relu',device=dev,seed=1,residual=False)
+ netd=SDILNet([ni]+[W]*d+[2],act='relu',device=dev,seed=1,residual=False)
+ cfg=dfa_config(eta=0.02,momentum=0.9); s=0
+ for e in range(20):
+ for x,y in tr:
+ netb.bp_step(x,y,0.02,0.9); sdil_step(netd,x,y,onehot(y,2),cfg,s); s+=1
+ print(f" depth={d:2d}: BP {evaluate(netb,te)[0]:.3f} DFA {evaluate(netd,te)[0]:.3f}",flush=True)