Om de vergelijkingen van ongelijkheid met de compilatietijd in JAX uit te stellen, kunt u bepaalde strategieën gebruiken waarbij uw code wordt herschreven om de symbolische activiteiten van JAX te gebruiken. Hier zijn enkele methoden om dit te bereiken:
1. Gebruik `core.max_dim` en` core.min_dim`: in plaats van ingebouwde `max` of` min` functies, of `np.max` en` np.min`, kunt u ze vervangen door `core .max_dim` en `core.min_dim`. Deze functies vertragen de ongelijkheidsvergelijking tot de compilatietijd wanneer vormen bekend worden. In plaats van `D als D> 0 anders 0` bijvoorbeeld, kunt u` core.max_dim (d, 0) `schrijven.
2. Herschrijfconditionals: probeer voorwaardelijke conditionals te herschrijven met behulp van `core.max_dim` en` core.min_dim`. Deze benadering helpt bij het uitstellen van de evaluatie van ongelijkheden totdat de vormen op compileertijd worden bepaald.
3. Vermijd gehele afhankelijkheden: vertrouw op het feit dat symbolische dimensies kunnen worden behandeld als gehele getallen voor de meeste rekenkundige operaties. Schrijf in plaats van `int (d) + 5`` d + 5`. Dit vermindert de afhankelijkheid van integer -dimensies en zorgt voor meer flexibele compilatie.
4. Geef symbolische beperkingen op: specificeer indien mogelijk symbolische beperkingen om JAX te begeleiden bij het omgaan met ongelijkheden tijdens compilatie. Dit kan helpen bij het optimaliseren van de code door vergelijkingen uit te stellen totdat het nodig is.
Door deze strategieën te gebruiken, kunt u de vergelijkingen van ongelijkheid effectief uitstellen met de compilatietijd in JAX, wat de efficiëntie en flexibiliteit van uw code kan verbeteren.
Citaten:[1] https://inria.hal.science/hal-03431315v2/document
[2] https://docs.jax.dev/en/latest/jit-compilation.html
[3] https://github.com/jax-ml/jax/blob/main/changelog.md
[4] https://docs.jax.dev/en/latest/faq.html
[5] https://arxiv.org/abs/1204.1069
[6] https://github.com/google/jax/blob/main/jax/experimental/jax2tf/readme.md
[7] https://arxiv.org/abs/1602.05281
[8] https://stackoverflow.com/questions/69070804/how-to-reduce-jax-compile-when-hening-for-lus