Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kaip aš galiu atidėti nelygybės palyginimus su kompiliavimo laiku JAX


Kaip aš galiu atidėti nelygybės palyginimus su kompiliavimo laiku JAX


Norėdami atidėti nelygybės palyginimus su kompiliavimo laiku JAX, galite naudoti tam tikras strategijas, susijusias su kodo perrašymu, kad panaudotumėte JAX simbolines operacijas. Čia yra keletas būdų tai pasiekti:

1. Naudokite `core.max_dim` ir` core.min_dim`: užuot naudoję integruotą „max“ arba „min“ funkcijas, arba „np.max“ ir „np.min“, galite juos pakeisti „branduoliu .max_dim` ir `core.min_dim`. Šios funkcijos atideda nelygybės palyginimą iki kompiliavimo laiko, kai formos bus žinomos. Pvz., Vietoj `d, jei d> 0 else 0`, galite parašyti` core.max_dim (d, 0) `.

2. Perrašykite sąlyginius: pabandykite perrašyti sąlygas naudodami „core.max_dim“ ir „core.min_dim“. Šis metodas padeda atidėti nelygybės vertinimą, kol formos nustatytos sudarant sudarymo laiką.

3. Venkite sveikų skaičiavimų priklausomybių: pasikliaukite tuo, kad simboliniai matmenys gali būti traktuojami kaip sveikieji skaičiai daugumai aritmetinių operacijų. Vietoj „int (d) + 5“ parašykite „d + 5“. Tai sumažina priklausomybę nuo sveiko skaičiaus matmenų ir leidžia lanksčiau kompiliuoti.

4. Nurodykite simbolinius apribojimus: Jei įmanoma, nurodykite simbolinius apribojimus, kad JAX būtų nukreiptas į nelygybę kompiliavimo metu. Tai gali padėti optimizuoti kodą, atidedant palyginimus, kol reikės.

Naudodamiesi šiomis strategijomis, galite veiksmingai atidėti nelygybės palyginimus su JAX kompiliavimo laiku, kuris gali pagerinti jūsų kodo efektyvumą ir lankstumą.

Citatos:
[1] https://inria.hal.science/hal-03431315v2/document
[2] https://docs.Jax.dev/en/latest/jit-complication.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-mew-when-sing-for-Loop