Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon JAX의 컴파일 시간과의 불평등 비교를 지연시키는 방법


JAX의 컴파일 시간과의 불평등 비교를 지연시키는 방법


JAX의 컴파일 시간과의 불평등 비교를 지연 시키려면 코드를 다시 작성하여 JAX의 상징적 작업을 활용하는 특정 전략을 사용할 수 있습니다. 다음은이를 달성하는 몇 가지 방법입니다.

1.`core.max_dim`과`core.min_dim`을 사용하십시오 : 내장`max` 또는`min '함수를 사용하는 대신`np.max` 및`np.min`을 사용하는 대신`핵심으로 교체 할 수 있습니다. .max_dim` 및`core.min_dim`. 이러한 기능은 모양이 알려질 때의 편집 시간까지 불평등 비교를 지연시킵니다. 예를 들어,`d> 0 else 0 '대신`core.max_dim (d, 0)`을 쓸 수 있습니다.

2. 조건부를 다시 쓰십시오 :`core.max_dim` 및`core.min_dim`을 사용하여 조건부를 다시 작성하십시오. 이 접근법은 모양이 컴파일 시간에 결정될 때까지 불평등 평가를 지연시키는 데 도움이됩니다.

3. 정수 의존성을 피하십시오 : 상징적 차원이 대부분의 산술 작업의 정수로 취급 될 수 있다는 사실에 의존하십시오. `int (d) + 5 '대신`d + 5'를 씁니다. 이렇게하면 정수 치수에 대한 의존성이 줄어들고보다 유연한 컴파일이 가능합니다.

4. 상징적 제약을 지정하십시오. 가능하면 편집 중 불평등을 처리 할 때 JAX를 안내하기 위해 상징적 제약을 지정하십시오. 이것은 필요할 때까지 비교를 지연시켜 코드를 최적화하는 데 도움이 될 수 있습니다.

이러한 전략을 사용하면 JAX의 컴파일 시간과의 불평등 비교를 효과적으로 지연시켜 코드의 효율성과 유연성을 향상시킬 수 있습니다.

인용 :
[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/githogle/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-time-using-for-loop