Dev environment is best set up via VS Code remote server (SSH & DevContainer Extensions)
- Get access to https://apu.cloudlab.zhaw.ch
- Create a Key Pair via Project/Compute/Key Pairs "Create Key Pair"
- Name: My-SSH-KeyPair
- Key Type: SSH
- Create SSH Security Group via Project/Network/Security Group "Create Security Group"
- Name: SSH
-> Create Security Group
Add Rule via "Add Rule":
- Description: SSH
- Directions: Ingress
- Open Port: Port
- Port: 22
- Remote: CIDR
- CIDR: 0.0.0.0/0
- Name: SSH
-> Create Security Group
Add Rule via "Add Rule":
- Launch Instance Project/Compute/Instances "Launch Instance"
- Instance Name: any
- Source: 2022-01_Ubuntu_Focal_nVidia-Cuda_Docker
- Flavour: g1.xlarge.t4
- Network: Allocate "internal"
- Security Group: SSH
- Key Pair: My-SSH-KeyPair -> Launch Instance
- Add FloatingIp Project/Compute/Instances
- On Instance: Action dropdown (far right) -> Allocate Floating IP
- choose any
- Reboot machine to avoid "Driver/ Library version mismatch" Error
VS Code Remote - SSH & Remote - Containers Extensions necessary Connect to Docker Host
- Add private key (*.pem file) to VS Code
- copy .pem file to ~/.ssh
- Add SSH Host
- ctrl-p -> Remote-SSH: Add new SSH Host
- Add Floating IP from Docker Host
- Connect
- Pull git repo onto Docker host
- configure git user name
git config --global user.email "lutzurb1@students.zhaw.ch"
git config --global user.name "Urban Lutz"
git config --global http.sslVerify false
Launch DevContainer
- ctrl+p -> Remote Containers: Reopen in Container
Experiments can be specified in CSV format in experiments.csv. Valid columns are all parammeter available in any class from params.py. If a parameter for a given class is omitted, the default value from params.py will be set.
The mechanism allows to specify an arbitrary number of pruning phases by prefixing the pruning parameter with "X_" (X -> phase number, starting at 1). 3 kinds of pruning phases are supported:
- "train": only training, no pruning, (set the train_epochs param)
- "one-shot": only pruning (set strategy, sparsity)
- "iterative": prune and train (set strategy, sparsity, prune_epochs, train_epochs)
lives on gdrive https://medium.com/geekculture/how-to-upload-file-to-google-drive-from-linux-command-line-69668fbe4937