Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kādas ir priekšrocības, izmantojot core.max_dim un core.min_dim Jax


Kādas ir priekšrocības, izmantojot core.max_dim un core.min_dim Jax


Izmantojot `core.max_dim` un` core.min_dim`, jax piedāvā vairākas priekšrocības, it īpaši, ja nodarbojas ar simboliskām dimensijām un formas polimorfismu:

1. Aizkavēts nevienlīdzības salīdzinājums: šīs funkcijas ļauj salīdzināt simboliskās dimensijas aizkavēt līdz kompilācijas laikam, kad formas kļūst zināmas. Tas ir noderīgi, jo JAX var efektīvāk novērtēt nevienlīdzību, kas saistīta ar simboliskām dimensijām, samazinot kļūdas, kas saistītas ar nepārliecinošām dimensiju operācijām [1].

2. Apkalpošanās nosacītie paziņojumi: izmantojot `core.max_dim` un` core.min_dim`, jūs varat pārrakstīt nosacītus paziņojumus tādā veidā, kas ir savietojams ar Jax kompilācijas procesu. Piemēram, `D, ja d> 0 cits 0`, varat rakstīt` core.max_dim (d, 0) `, kas ļauj izvairīties no skaidras nosacītas loģikas un padara kodu vairāk piemērojamu optimizācijai [1].

3. Uzlabota formas polimorfisms: šīs funkcijas palīdz apstrādāt formas polimorfās programmas, kas ir izšķirošas, lai izveidotu modeļus, kas var darboties ar dažādiem ievades izmēriem. Simboliski izsakot max un min operācijas, Jax var labāk apstrādāt partijas lieluma-polimorfās programmas, ļaujot vienam SavedModel strādāt ar dažādiem partijas izmēriem [1].

4. Izvairīšanās no veseliem atkarībām: izmantojot `core.max_dim` un` core.min_dim`, jūs varat izvairīties no skaidriem veseliem skaitļiem, kas var padarīt jūsu kodu elastīgāku un mazāk atkarīgu no īpašām vesela skaitļa vērtībām. Tas ir izdevīgi, strādājot ar simboliskām dimensijām, kuras lielākajai daļai aritmētisko operāciju var uzskatīt par veseliem skaitļiem [1].

Kopumā šīs funkcijas uzlabo Jax programmu izteiksmīgumu un elastīgumu, it īpaši, strādājot ar simboliskām dimensijām un formas polimorfismu.

Atsauces:
[1] https://github.com/google/jax/blob/main/jax/experimental/jax2tf/readme.md
[2] https://docs.jax.dev/en/latest/faq.html
[3] https://github.com/google/jax/blob/main/jax/core.py
.
[5] https://docs.jax.dev/en/latest/changelog.html
[6] https://jax.readthedocs.io/en/latest/gpu_memory_allocation.html
[7] https://stackoverflow.com/questions/75471289/huge-memory-requirement-difference-weenween-jax-0-2-17-and-jax-0-4-1
[8] https://kolonist26-jax-kr.readthedocs.io/en/latest/gpu_memory_allocation.html