2023-Q1-AI 8. Attēlu klasifikācija, ResNet, DenseNet

 

 

8.1 Video / Materials

Video: https://youtube.com/live/Cd9BPbTwSvc?feature=share

Jamboard: https://jamboard.google.com/d/17WLYL80tRlIaUPfuKsXUSqXmpivaDaAxYH25nhgDRt4/edit?usp=sharing

Materiāli:

  1. ResNet: https://arxiv.org/abs/1512.03385

  2. DenseNet: https://arxiv.org/abs/1608.06993

  3. GradCAM: https://arxiv.org/abs/1610.02391

 


 

RTMP key: ea11-mrgb-4jg2-4ajc-d4hr

 

image-20230227214533659

Pagājušā gada piemērs

Video: https://youtu.be/y9CcSpH1Db4

Jamboard: https://jamboard.google.com/d/1T0k_rnWjj5Flyd0BzJ3-At0QyOth78lfTSkKMdS1Zck/edit?usp=sharing


Saturs:

  1. Wanishing gradient problem, training time

  2. Jāizstāsta par ResNet jēgu

  3. Kopīgi jāuzkodē

  4. Jāpastāsta vairāk kā izmantot cuda un kā palaist uz GoogleCollab, jo o aizmirsam pagājušā reizē laikam

  5. pastāstīt par print_model_size

  6. Jāizstāsta par DenseNet jēgu

  7. Kopīgi jāuzkodē

  8. Parādīt kā pārveidot dataset un CCE loss, lai strādātu ar indexes bez One-hot-encoded

  9. Mājās InceptionNet jāiedod - 1000 punkti

 

⚠️ Iesaku parādīt / pamainīt saturu, lai implementētuj HRNet, RegNet

https://paperswithcode.com/method/hrnet

 

⚠️ Lūdzu neizmantot __call__ operatoru

Tā vietā izmantot

Citādi studenti nesaprot atsķirību starp member funkciju un member instances funkcijas izsaukumu

 

⚠️ Lūdzu neraksti objektus / funkcijas bez named params, ja ir hardcoded

vietā

Jo, tad kods nav saprotams tiem, kas nepārvalda ļoti labi tās funkcijas

 


8.2. Uzdevums - Implementēt ResBlock pēc shēmas

Template:

http://share.yellowrobot.xyz/quick/2023-3-5-746B40C5-AD38-4ABC-B0EB-88664531AC55.zip

Schema:

http://share.yellowrobot.xyz/upic/a65c781c39c912ce3f6eb0fa0d8683d2_1648487642.png

Resblock

 


 

8.3. Uzdevums - Implementēt DenseBlock pēc shēmas

Implementēt DenseBlock pēc shēmas:

http://share.yellowrobot.xyz/upic/78a04509453a172cc8e9f4596e3f1bfb_1648487642.png Concat torch pa channel dimensiju: out = torch.cat([x, conv1, conv2], dim=1)

DenseBlock


 

8.4. Uzdevums - Implementēt Transition Layer pēc shēmas

Implementēt Transition Layer pēc shēmas:

http://share.yellowrobot.xyz/upic/818ebd4aefaaac1b89a95a001b8c2f84_1648487642.png

TransitionLayer_DenseNet


🔴 BUG - shēmās output size ir 10! Fruits ir vairāk klases vajag salabot bildi

8.5. Implementēt InceptionNet pēc shēmas

Uzdevumi

  1. Implementēt InceptionBlockA pēc shēmas http://share.yellowrobot.xyz/upic/eb8efa9b91a1f830be24bfe759b4362e_1648487642.png

  2. Implementēt InceptionNet pēc shēmas http://share.yellowrobot.xyz/upic/d01c9969864e93f075b353280969bc2e_1648487642.png

Gan InceptionBlockA, gan InceptionNet modeļu shēmas nav norādīts channel count katram slānim, to var brīvi izvēlēties. InceptionBlockA visiem zariem channel count nav jāsakrīt, var eksperimentēt katram liekot savu vērtību.

Papildus uzdevumi:

  1. Izveidot InceptionBlock bottleneck versiju, lai var starp blokiem neizmantot maxpool layer.

  2. Implementēt cita veida InceptionNet blokus: https://towardsdatascience.com/a-simple-guide-to-the-versions-of-the-inception-network-7fc52b863202 https://arxiv.org/pdf/1409.4842.pdf https://arxiv.org/pdf/1512.00567.pdf

Template:

http://share.yellowrobot.xyz/quick/2023-3-5-C77331DD-38FA-4D9D-B9DB-1677BDA1F351.zip

 


 

 

 

InceptionBlockA

InceptionBlockA

InceptionNet

InceptionNet

 


Materiāli slaidiem Jamboard

89462AEA-706D-4882-A8F8-213FEA3205F1

27A6E847-6B14-44F7-8A31-1515EE64406A

2D300D24-55A4-49B4-9DE5-762A96A4E0FF

C40766D4-FE91-4FB2-B22D-6DA38532DAE8

3D6EDABD-E3AE-4A39-AFF0-8434A758233C

962CAF7E-A018-4459-90CA-E6A7A1192A57

5FF1D9BF-081D-4AAA-8E1D-5B8A07C9ED83

FED42FCF-7590-4C8E-B2A3-CE9EF1DB67B4

 

001B172D-5D93-4FEA-B70C-D69559D162E8

992823B3-F29F-401C-B6F8-5ED62BBEBE8E

FD8C8D2D-5690-4DB9-8B98-646A192E2614