„Pytea“, statinis analizatorius, skirtas aptikti tensorių formos klaidas Pytorcho kode, tvarko sudėtingus vykdymo kelius, naudodama keletą strategijų:
1. Konservatyvus genėjimas: „Pytea“ naudoja konservatyvią genėjimo techniką, kad sumažintų vykdymo kelių skaičių. Šis metodas padeda išvengti kelio sprogimo, kuris gali atsirasti analizuojant kodą su daugybe sąlyginių šakų. Genėdamas mažiau svarbiais keliais, „Pytea“ daugiausia dėmesio skiria kritiškiausiems vykdymo keliams, kuriuose greičiausiai yra tenzorinės formos klaidų [1] [2].
2. Simbolinė abstrakcija: Pytea remiasi simboline abstrakcija, kad supaprastintų kilpų analizę ir sąlyginius teiginius. Ši abstrakcija leidžia „Pytea“ išanalizuoti kodą, nereikia jo vykdyti, todėl jis bus efektyvesnis tvarkant sudėtingus kelius [1] [2].
3. Liko tvarkymas: „Loops“, „Pytea“ atskiria nuolatines surištų kilpas ir analizuoja jų tiesiosios linijos kodo versiją. Kiloms su nežinomomis ribomis, tokiomis kaip iteracinėse duomenų rinkiniuose, „Pytea“ analizuoja kilpos korpusą dviem atvejais: fiksuoto dydžio mikroautobusu ir mažesniu likutiniu mikroautobusu. Šis požiūris supaprastina kilpų analizę, kuri kitaip galėtų apsunkinti vykdymo kelio analizę [1] [2].
4. Laiko laiko mechanizmas: Jei vykdymo kelių skaičius vis dar tampa per didelis, nepaisant genėjimo, „Pytea“ naudoja laiko tarpą. Tai užtikrina, kad analizė neužtrunka pernelyg ilgo laiko, net jei tai reiškia nevisiškai ištirti visus įmanomus kelius [1] [2].
Derindamas šias strategijas, „Pytea“ efektyviai tvarko sudėtingus vykdymo kelius „Pytorch“ kode, leisdamas jai greitai ir tiksliai aptikti tenzorių formos klaidas.
Citatos:[1] https://sf.snu.ac.kr/publications/pytea.pdf
[2] https://arxiv.org/pdf/2112.09037.pdf
[3] https://sf.snu.ac.kr/pytea/
[4] https://www.researchgate.net/publication/357114953_a_static_analyzer_for_detecting_tensor_shape_errors_in_deep_neural_network_training_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/proeceingings-article/icse-companion/2022/959800a337/1eapbpBou12
[8] https://stackoverflow.com/questions/57410835/define-a-relative-path-folder-inside-a-function-that-run-code-on-both-cmd-and-id