this dir | view | cards | source | edit | dark
top
Cvičení
reshape([inputs.shape[0], -1])
-1 je wild card, PyTorch použije velikost dat
- je zvykem, že se obrázky ukládají jako pole bytů a pak se převádějí na floaty až během tréninku (?)
- nepoužívat pythoní seznam jako seznam vrstev – PyTorch je nenajde při hledání parametrů
- gym cartpole
- baseline model: 128 neuronů ve skryté vrstvě, ReLU
- menší model neoverfituje tak moc
- pro 4 skryté neurony to funguje dost dobře
- Tanh asi funguje líp než ReLU, protože vlastně nedělá nic (→ neoverfittuje)
- bez skryté vrstvy to taky funguje lol
- GPUčka
- MetaCentrum (pro studenty VŠ)
- AIC
- jak pracovat s clusterem
- pomocí ssh se přihlásíme do hlavy (head) clusteru
- pošleme tam job (specifikujeme, jaké zdroje potřebujeme – CPU, GPU apod.)
- pak je tam nějaká fronta a workers
- interactive job (s terminálem) × batch job (bez terminálu)
- je to v FAQ sekci na webu
%time na začátku řádku v interaktivním režimu (ipython) stopuje čas pro daný příkaz
- můžeme používat VS Code přes ssh, ale bacha, pořád je potřeba submitnout job pomocí pomocí srun
- dosud naše architektury začínají zplacatěním
- teďka budeme zplacatění používat až mezi konvolucí a FC vrstvami
- uppercase competition
- nemůžeme klasifikovat jednotlivá písmena – zajímá nás i kontext
- jak reprezentovat písmena?
- jako inty? ne :(
- můžeme onehotovat
- můžeme použít embedding
- batch size 2048, 10 epoch
- modely s jednou skrytou vrstvou fungujou líp než modely s více skrytými vrstvami
- zmenšení abecedy nám sníží čas trénování
- label smoothing pomáhá
- window size 7
- ensembling taky zlepší přesnost
- průměrování pravděpodobnosti
- nejlepší model (po ensemblu)
- embeddingy, window 10, label_smoothing 0.4
- cifar competition
- baseline: ReLU, batch 128, 200 epochs, SGD with lr 0.1 and Nesterov 0.9, cosine decay, dropout 0.2, stochastic depth 0.2, label smoothing 0.1, weight decay 0.004/10
- data augmentation
- basic: horizontal flip, random move of the image
- cutout
- AutoAugment or RandAugment
- stochastic depth funguje
- bacha na „overfitting“
- vývojová množina obvykle pochází ze stejného zdroje jako tréninková množina (kdežto testovací je odjinud)
- takže se nám snadno stane, že overfitneme na trénovací data, když porovnáváme hyperparametry
- weight decay je citlivý parametr, je potřeba ho zvolit dobře
- a taky přizpůsobovat, když měním ostatní hyperparametry
- jak na transfer learning
- zmrazení pretrained modulu (backbone)
- backbone.requires_grad_(false)
- je potřeba přepsat train metodu, aby backbone byla v eval módu
- rozmražení
- backbone.requires_grad_(true)
- backbone do train módu – až na BatchNorm (musí zůstat v eval módu)
- když trénuju model, který bych chtěl později finetunit, tak může být praktické použít group norm
- cags soutěž
- není zásadní rozdíl mezi transponovanou konvolucí a upscalingem
- u transponované konvoluce se používají kernely se sudou velikostí (typicky 4)
- existují funkce na logaritmování součtu ex
- FastText embeddingy