-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_experiments.sh
More file actions
137 lines (107 loc) · 11.9 KB
/
run_experiments.sh
File metadata and controls
137 lines (107 loc) · 11.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash
# ============================================================
# Full Experiment Battery - Quantum Contrastive Supervised
#
# Reproduces all experiments from the report:
# - 12 Tensor Ring runs (4 qubits)
# - 8 MERA runs (6 qubits)
#
# Common hyperparameters:
# batch-size=64, epochs=200, linear-epochs=200, lr=3e-4,
# temperature=0.5, weight-decay=1e-4, warmup-epochs=20,
# seed=42, num-classes=10, val-split=0.2, patience=30,
# n-samples-per-class=500
#
# Usage: bash run_experiments.sh
# ============================================================
set -e
echo "============================================================"
echo "EXPERIMENT BATTERY - Quantum Contrastive Supervised"
echo "============================================================"
echo "Started at: $(date)"
echo "============================================================"
# ============================================================
# SECTION 1: Tensor Ring (4 qubits, 2 layers, cosine scheduler)
# ============================================================
echo ""
echo "[TR] ResNet-18 + Angle + 2 layers + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_simclr_angle_500 --wandb-tags "tensor_ring,simclr,angle,n500,qubits4,depth2,cosine"
echo ""
echo "[TR] CNN + Angle + 2 layers + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_cnn_angle_500 --wandb-tags "tensor_ring,cnn,angle,n500,qubits4,depth2,cosine"
echo ""
echo "[TR] ResNet-18 + Amplitude + 2 layers + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_simclr_amplitude_500 --wandb-tags "tensor_ring,simclr,amplitude,n500,qubits4,depth2,cosine"
echo ""
echo "[TR] CNN + Amplitude + 2 layers + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_cnn_amplitude_500 --wandb-tags "tensor_ring,cnn,amplitude,n500,qubits4,depth2,cosine"
# ============================================================
# SECTION 2: Tensor Ring (4 qubits, 2 layers, no scheduler)
# ============================================================
echo ""
echo "[TR] ResNet-18 + Angle + 2 layers + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_simclr_angle_500_nolr --no-scheduler --wandb-tags "tensor_ring,simclr,angle,n500,qubits4,depth2,no_scheduler"
echo ""
echo "[TR] CNN + Angle + 2 layers + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_cnn_angle_500_nolr --no-scheduler --wandb-tags "tensor_ring,cnn,angle,n500,qubits4,depth2,no_scheduler"
echo ""
echo "[TR] ResNet-18 + Amplitude + 2 layers + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_simclr_amplitude_500_nolr --no-scheduler --wandb-tags "tensor_ring,simclr,amplitude,n500,qubits4,depth2,no_scheduler"
echo ""
echo "[TR] CNN + Amplitude + 2 layers + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_cnn_amplitude_500_nolr --no-scheduler --wandb-tags "tensor_ring,cnn,amplitude,n500,qubits4,depth2,no_scheduler"
# ============================================================
# SECTION 3: Tensor Ring (4 qubits, 1 layer, cosine scheduler)
# ============================================================
echo ""
echo "[TR] ResNet-18 + Angle + 1 layer + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_simclr_angle_500_layers1 --num-layers 1 --wandb-tags "tensor_ring,simclr,angle,n500,qubits4,depth1,cosine"
echo ""
echo "[TR] CNN + Angle + 1 layer + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_cnn_angle_500_layers1 --num-layers 1 --wandb-tags "tensor_ring,cnn,angle,n500,qubits4,depth1,cosine"
echo ""
echo "[TR] ResNet-18 + Amplitude + 1 layer + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_simclr_amplitude_500_layers1 --num-layers 1 --wandb-tags "tensor_ring,simclr,amplitude,n500,qubits4,depth1,cosine"
echo ""
echo "[TR] CNN + Amplitude + 1 layer + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_cnn_amplitude_500_layers1 --num-layers 1 --wandb-tags "tensor_ring,cnn,amplitude,n500,qubits4,depth1,cosine"
# ============================================================
# SECTION 4: MERA (6 qubits, cosine scheduler)
# ============================================================
echo ""
echo "============================================================"
echo "MERA EXPERIMENT BATTERY - circuit-type mera, 6 qubits"
echo "============================================================"
echo ""
echo "[MERA] ResNet-18 + Amplitude + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_simclr_amplitude_500_mera --circuit-type mera --num-qubits 6 --wandb-tags "mera,simclr,amplitude,n500,qubits6,cosine"
echo ""
echo "[MERA] CNN + Amplitude + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_cnn_amplitude_500_mera --circuit-type mera --num-qubits 6 --wandb-tags "mera,cnn,amplitude,n500,qubits6,cosine"
echo ""
echo "[MERA] ResNet-18 + Angle + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_simclr_angle_500_mera --circuit-type mera --num-qubits 6 --wandb-tags "mera,simclr,angle,n500,qubits6,cosine"
echo ""
echo "[MERA] CNN + Angle + Cosine"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_cnn_angle_500_mera --circuit-type mera --num-qubits 6 --wandb-tags "mera,cnn,angle,n500,qubits6,cosine"
# ============================================================
# SECTION 5: MERA (6 qubits, no scheduler)
# ============================================================
echo ""
echo "[MERA] ResNet-18 + Amplitude + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_simclr_amplitude_500_mera_nolr --circuit-type mera --num-qubits 6 --no-scheduler --wandb-tags "mera,simclr,amplitude,n500,qubits6,no_scheduler"
echo ""
echo "[MERA] CNN + Amplitude + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding amplitude --n-samples-per-class 500 --exp-name enc_cnn_amplitude_500_mera_nolr --circuit-type mera --num-qubits 6 --no-scheduler --wandb-tags "mera,cnn,amplitude,n500,qubits6,no_scheduler"
echo ""
echo "[MERA] ResNet-18 + Angle + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder simclr --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_simclr_angle_500_mera_nolr --circuit-type mera --num-qubits 6 --no-scheduler --wandb-tags "mera,simclr,angle,n500,qubits6,no_scheduler"
echo ""
echo "[MERA] CNN + Angle + No Scheduler"
uv run src/quantum/contrastive_supervised.py --use-wandb --batch-size 64 --epochs 200 --linear-epochs 200 --lr 3e-4 --temperature 0.5 --device cpu --weight-decay 1e-4 --warmup-epochs 20 --seed 42 --num-classes 10 --val-split 0.2 --patience 30 --encoder cnn --quantum-encoding angle --n-samples-per-class 500 --exp-name enc_cnn_angle_500_mera_nolr --circuit-type mera --num-qubits 6 --no-scheduler --wandb-tags "mera,cnn,angle,n500,qubits6,no_scheduler"
echo ""
echo "============================================================"
echo "ALL EXPERIMENTS COMPLETED"
echo "============================================================"
echo "Finished at: $(date)"
echo "============================================================"