Formos polimorfizmas JAX gali sukelti keletą įprastų klaidų dėl to, kad jis buvo elgiamasi su simboliniais matmenimis masyvo formose. Štai keletas šių klaidų:
1. Nesuderinamos transliavimo formos: Kai naudojami formos polimorfizmas, tokios operacijos kaip pridėjimas ar matricos dauginimas gali sugesti, jei simboliniai matmenys nesutampa su numatomomis formomis. Pvz., Bandymas pridėti masyvus su figūromis `(v,)` ir `(4,)` sukels klaidą, nes „V“ yra simbolinis matmenys, kuris ne visada gali būti lygus 4 [1] [2].
2. Formos tikrinimo klaidos: Operacijoms, tokioms kaip matricos dauginimasis, reikia specifinių formos apribojimų, tokių kaip kvadratinės matricos. Jei simboliniai matmenys netenkina šių apribojimų (pvz., Naudodami `(v, 4)` vietoj „(v, v)`), Jax padidins klaidas [1] [2].
3. Netiki matmenų operacijos: Palyginimai, apimantys simbolinius matmenis, gali būti neaiškūs, jei jų negalima išspręsti kaip loginę vertę visoms galimoms simbolinių matmenų vertėms. Bandant palyginti simbolines formas [1], tai sukelia tokias klaidas kaip „neįtikėtini operacija“ [1].
4. Formos tvirtinimo klaidos: JAX daro prielaidą, kad matmenų kintamieji yra griežtai teigiami sveikieji skaičiai. Jei tikrosios įvesties formos netenkina šių prielaidų (pvz., Tokia forma kaip `(b, b, 2*d)„ Kai „D“ nėra sveikasis skaičius), Jax vykdymo metu padidins klaidas [1] [2].
Šios klaidos pabrėžia poreikį atidžiai valdyti simbolinius matmenis, kai JAX naudoja formos polimorfizmą.
Citatos:[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-polimorfizmas
[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
[8] https://laracasts.com/discuss/channels/eloquent/polimorfizmas-why-Should-i-Violate-database-design?reply=103880