Changes
Page history
add more sections
authored
Sep 09, 2024
by
Sven Michael Lechner
Show whitespace changes
Inline
Side-by-side
Misc/Commands.md
0 → 100644
View page @
7223ef0c
A list of commands that you might want to use/modify during development.
# gRPC
Generate protobufs
```
shell
python3
-m
grpc_tools.protoc
-I
./edml/proto
--python_out
=
./edml/generated
--pyi_out
=
./edml/generated
--grpc_python_out
=
./edml/generated ./edml/proto/datastructures.proto
```
```
shell
python3
-m
grpc_tools.protoc
-I
./edml/proto
--python_out
=
./edml/generated
--pyi_out
=
./edml/generated
--grpc_python_out
=
./edml/generated ./edml/proto/connection.proto
```
# Experiments
## 50 devices
It is better to run W&B offline and sync afterward to not reach the bandwidth limit with a high number of processes.
```
shell
export
WANDB_MODE
=
offline
# experiment here
wandb
sync
--sync-all
```
### FL
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
50_devices
battery
=
resnet20_cifar100_cost +controller
=
fed wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
50_devices_unlimited_new +experiment.load_weights
=
False
```
### Vanilla SL
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
50_devices
battery
=
resnet20_cifar100_cost +controller
=
split
wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
50_devices_unlimited_new +experiment.load_weights
=
False
```
### Swarm SL Seq
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
50_devices
battery
=
resnet20_cifar100_cost +controller
=
swarm controller/scheduler
=
sequential wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
50_devices_unlimited_new +experiment.load_weights
=
False
```
### PSSL Seq
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar experiment.batch_size
=
3
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
50_devices
battery
=
resnet20_cifar100_cost +controller
=
parallel_swarm controller/scheduler
=
sequential wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
50_devices_unlimited_new +experiment.load_weights
=
False
```
### PSSL Seq AE
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar experiment.batch_size
=
3
loss_fn
=
cross_entropy
model_provider
=
resnet110-with-autoencoder
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
50_devices
battery
=
resnet20_cifar100_cost +controller
=
parallel_swarm controller/scheduler
=
sequential wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
50_devices_unlimited_new +experiment.load_weights
=
False
```
### PSSL Seq AE Static
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar experiment.batch_size
=
3
loss_fn
=
cross_entropy
model_provider
=
resnet110-with-autoencoder
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
50_devices
battery
=
resnet20_cifar100_cost +controller
=
parallel_swarm controller/scheduler
=
sequential controller/adaptive_threshold_fn
=
static controller.adaptive_threshold_fn.threshold
=
0.7 wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
50_devices_unlimited_new +experiment.load_weights
=
False
```
## 5 devices
```
shell
export
WANDB_MODE
=
online
```
### FL
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar experiment.batch_size
=
26
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
equal_batteries
battery
=
resnet20_cifar100_cost +controller
=
fed wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
5_devices_unlimited_new +experiment.load_weights
=
False
```
### Vanilla SL
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
equal_batteries
battery
=
resnet20_cifar100_cost +controller
=
split
wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
5_devices_unlimited_new +experiment.load_weights
=
False
```
### Swarm SL Seq
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
equal_batteries
battery
=
resnet20_cifar100_cost +controller
=
swarm controller/scheduler
=
sequential wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
5_devices_unlimited_new +experiment.load_weights
=
False
```
### PSSL Seq
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar experiment.batch_size
=
26
loss_fn
=
cross_entropy
model_provider
=
resnet110
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
equal_batteries
battery
=
resnet20_cifar100_cost +controller
=
parallel_swarm controller/scheduler
=
sequential wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
5_devices_unlimited_new +experiment.load_weights
=
False
```
### PSSL Seq AE
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar experiment.batch_size
=
26
loss_fn
=
cross_entropy
model_provider
=
resnet110-with-autoencoder
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
equal_batteries
battery
=
resnet20_cifar100_cost +controller
=
parallel_swarm controller/scheduler
=
sequential wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
5_devices_unlimited_new +experiment.load_weights
=
False
```
### PSSL Seq AE Static
```
shell
python3 main.py
dataset
=
cifar100
experiment
=
cifar experiment.batch_size
=
26
loss_fn
=
cross_entropy
model_provider
=
resnet110-with-autoencoder
optimizer
=
sdg_with_momentum
scheduler
=
multistep
topology
=
equal_batteries
battery
=
resnet20_cifar100_cost +controller
=
parallel_swarm controller/scheduler
=
sequential controller/adaptive_threshold_fn
=
static controller.adaptive_threshold_fn.threshold
=
0.7 wandb.enabled
=
True wandb.key_path
=
wandb_key.txt wandb.entity
=
swarmsl experiment.project
=
5_devices_unlimited_new +experiment.load_weights
=
False
```
\ No newline at end of file