Formas polimorfisms Jax var izraisīt vairākas izplatītas kļūdas, pateicoties tā simbolisko dimensiju apstrādei masīva formās. Šeit ir dažas no šīm kļūdām:
1. Nesaderīgas apraides formas: Izmantojot formas polimorfismu, tādas operācijas kā pievienošana vai matricas reizināšana var neizdoties, ja simboliskie izmēri neatbilst paredzamajām formām. Piemēram, mēģinot pievienot masīvus ar formām `(v)` un `(4), radīs kļūdu, jo` v` ir simboliska dimensija, kas ne vienmēr var būt vienāda ar 4 [1] [2].
2. formas pārbaudes kļūdas: tādām darbībām kā matricas reizināšana prasa īpašus formas ierobežojumus, piemēram, kvadrātveida matricu. Ja simboliskie izmēri neatbilst šiem ierobežojumiem (piemēram, izmantojot `(v, 4)`, nevis `(v, v)`), Jax radīs kļūdas [1] [2].
3. Pārliecinošas dimensijas operācijas: salīdzinājumi, kas saistīti ar simboliskām dimensijām, var būt nepārliecinoši, ja tos nevar atrisināt līdz Būla vērtībai visām iespējamām simbolisko dimensiju vērtībām. Tas noved pie kļūdām, piemēram, “NeapmierinātībasIdimensionOperation”, mēģinot salīdzināt simboliskas formas [1].
4. formas apgalvojuma kļūdas: Džekss pieņem, ka izmēru mainīgie ir stingri pozitīvi veseli skaitļi. Ja faktiskās ieejas formas neatbilst šiem pieņēmumiem (piemēram, tāda forma kā `(B, B, 2*D)` Kad `d` nav vesels skaitlis), Jax izpildes laikā radīs kļūdas [1] [2].
Šīs kļūdas izceļ nepieciešamību rūpīgi pārvaldīt simboliskus izmērus, izmantojot formas polimorfismu Jax.
Atsauces:[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-polimorfisms
[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/polymorphism-why-should-i-violate-database-design?reply=103880