Pytea, statický analyzátor na detekciu chýb tvaru tenzora v kóde Pytorch, spracováva komplexné cesty vykonávania pomocou niekoľkých stratégií:
1. Konzervatívne prerezávanie: Pytea používa konzervatívnu techniku prerezávania na zníženie počtu cestujúcich. Táto metóda pomáha predchádzať výbuchu cesty, ktorá sa môže vyskytnúť pri analýze kódu s mnohými podmienenými vetvami. Prerezaním menej relevantných ciest sa Pytea zameriava na najdôležitejšie cesty vykonávania, ktoré pravdepodobne obsahujú chyby tenzora tvaru [1] [2].
2. Symbolická abstrakcia: Pytea sa spolieha na symbolickú abstrakciu, aby zjednodušila analýzu slučiek a podmienených príkazov. Táto abstrakcia umožňuje PYTEA analyzovať kód bez toho, aby ho musel vykonať, takže je efektívnejšia na zaobchádzanie s komplexnými cestami [1] [2].
3. Služba: pre slučky Pytea rozvíja konštantné slučky a analyzuje svoju priamu verziu kódu. V prípade slučiek s neznámymi hranicami, ako sú napríklad tie, ktoré iterujú na súboroch údajov, PYTEA analyzuje telo slučky v dvoch prípadoch: minibatch s pevnou veľkosťou a menšie zvyškové minibatch. Tento prístup zjednodušuje analýzu slučiek, ktoré by inak mohli komplikovať analýzu cesty vykonávania [1] [2].
4. Mechanizmus časového limitu: Ak sa počet dráh vykonávania stále stáva príliš veľkým napriek prerezávaniu, Pytea používa mechanizmus časového limitu. To zaisťuje, že analýza netrvá príliš dlho, aj keď to znamená úplne preskúmať všetky možné cesty [1] [2].
Kombináciou týchto stratégií Pytea efektívne spracováva komplexné cesty vykonávania v Pytorch Code, čo jej umožňuje rýchlo a presne zistiť chyby v tvare tenzora.
Citácie:[1] https://sf.snu.ac.kr/publications/pytea.pdf
[2] https://arxiv.org/pdf/2112.09037.pdf
[3] https://sf.snu.ac.kr/pytea/
Https://www.researchgate.net/publication/357114953_a_static_analyzer_for_detecting_tensor_shape_errors_in_deep_Neral_Network_training_code_code_code
[5] https://dl.acm.org/doi/10.1145/3510454.3528638
[6] https://discuss.pytorch.org/t/pytorch-coding-conventions/42548
[7] https://www.computer.org/csdl/proceings-artticle/icse-companion/2022/959800a337/1aPBPbou12
[8] https://stackoverflow.com/questions/57410835/definea-a-relative-path-folder-inside-a-function-that-run-code-code-on-code-code--both-cmd-and-and-id-id