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