Kujupolümorfism Jaxis võib põhjustada mitmeid levinumaid vigu sümboolsete mõõtmete käitlemise tõttu massiivi kujuga. Siin on mõned neist vigadest:
1. kokkusobimatu kujuga ringhäälinguks: Kuju polümorfismi kasutamisel võivad toimingud nagu lisamine või maatriksi korrutamine ebaõnnestuda, kui sümboolsed mõõtmed ei vasta eeldatavatele kujudele. Näiteks püüdes lisada massiive kujudega `(v,)` ja `(4,)` põhjustab vea, kuna `v` on sümboolne mõõde, mis ei pruugi alati võrduda 4 [1] [2].
2. Kujude kontrollimise vead: toimingud nagu maatriksi korrutamine nõuavad konkreetseid kujupiiranguid, näiteks ruudukujulisi maatriksite olemasolu. Kui sümboolsed mõõtmed ei vasta neile piirangutele (nt kasutades `(v, 4)`, mitte `(v, v)`), tõstab Jax vigu [1] [2].
3. Ebaselged mõõtmeoperatsioonid: Sümboolsete mõõtmetega võrdlused võivad olla ebaselged, kui neid ei saa lahendada sümboolse mõõtme kõigi võimalike väärtuste jaoks tõeväärtuse. See põhjustab sümboolsete kujundite võrdlemisel selliseid vigu nagu "ebakõlalised mõõtmised" [1].
4. Kuju väitevead: Jax eeldab, et mõõtmete muutujad on rangelt positiivsed täisarvud. Kui tegelikud sisendvormid ei vasta neile eeldustele (nt kuju nagu `(b, b, 2*d)`, kui "D" ei ole täisarv), tõstab Jax täitmise ajal vigu [1] [2].
Need vead rõhutavad vajadust sümboolsete mõõtmete hoolikalt hallata, kui Jaxis kasutatakse kujupolümorfismi.
Tsitaadid:[1] https://docs.jax.dev/en/latest/export/shape_poly.html
[2] https://github.com/google/jax/blob/main/jax/experimental/jax2tf/readme.md
[3] https://docs.jax.dev/en/latest/notebooks/thing_in_jax.html
[4] https://stackoverflow.com/questions/65934509/errors-in-polymorfism
[5] https://github.com/google/jax/Discussions/15995
[6] https://docs.jax.dev/en/latest/debugging/index.html
[7] https://jax.readthedocs.io/en/latest/errors.html
]