Formpolymorfisme i JAX kan føre til flere almindelige fejl på grund af dens håndtering af symboliske dimensioner i arrayformer. Her er nogle af disse fejl:
1. Inkompatible former til radio- For eksempel at prøve at tilføje arrays med former `(v,)` og `(4,)` vil resultere i en fejl, fordi `v` er en symbolsk dimension, der måske ikke altid svarer til 4 [1] [2].
2. Formekontrolfejl: operationer som Matrix Multiplikation kræver specifikke formbegrænsninger, såsom at have firkantede matrixer. Hvis de symboliske dimensioner ikke tilfredsstiller disse begrænsninger (f.eks. Brug `(V, 4)` i stedet for `(V, V)`), hæver JAX fejl [1] [2].
3. uoverensstemmende dimensionsoperationer: Sammenligninger, der involverer symboliske dimensioner, kan være entydige, hvis de ikke kan løses til en boolsk værdi for alle mulige værdier for de symboliske dimensioner. Dette fører til fejl som `Inconclusivedimensionoperation ', når man prøver at sammenligne symboliske former [1].
4. Formikontrækningsfejl: JAX antager, at dimensionsvariabler er strengt positive heltal. Hvis de faktiske inputformer ikke tilfredsstiller disse antagelser (f.eks. En form som `(B, B, 2*D)` når `D 'ikke er et heltal), hæver JAX fejl under udførelsen [1] [2].
Disse fejl fremhæver behovet for omhyggeligt at håndtere symboliske dimensioner, når man bruger formpolymorfisme i JAX.
Citater:[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/thinking_in_jax.html
[4] https://stackoverflow.com/questions/65934509/errors-in-polymorphism
[5] https://github.com/google/jax/discussioner/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