Pytorch 코드에서 텐서 모양 오류를 감지하기위한 정적 분석기 인 Pytea는 잠재적 인 형상 불일치를 식별하는 데 효과가 있음에도 불구하고 몇 가지 제한 사항이 있습니다.
1. 경로 폭발 및 복잡성 : Pytea는 보수적 인 가지 치기를 사용하여 실행 경로의 수를 관리하지만, 많은 조건부 진술 또는 루프가있는 복잡한 모델은 여전히 경로 폭발로 이어질 수 있으며, 매우 크거나 역동적 인 코드베이스에서 확장 성을 제한 할 수 있습니다 [1] [1]. 3].
2. 구현되지 않은 API : Pytea는 프레임 워크 내에서 구현되지 않은 Pytorch 또는 기타 타사 API를 만나면 잘못된 경보를 제기 할 수 있습니다. 이는 사용자가 불필요한 경고를 피하기 위해 어떤 API가 지원되는지 알아야한다는 것을 의미합니다 [5].
3. 오프라인 분석 한계 : Z3 SMT 솔버를 사용한 오프라인 분석은 제약 조건이 너무 복잡하거나 비선형이라면 타임 아웃으로 이어지는 경우 결정할 수없는 경로를 초래할 수 있습니다. 이것은 경로가 유효한지 아닌지에 대한 명확한 표시를 항상 제공하지는 않을 수 있습니다 [5].
4. 결과 해석 : PYTEA는 항상 실제 런타임 오류로 이어질 수없는 제약 조건에 따라 잠재적 오류를 식별하므로 결과를 신중하게 해석해야합니다. 이를 위해서는 코드의 컨텍스트 및 잠재적 실행 경로를 이해해야합니다 [5].
5. 통합 및 지원 : PYTEA는 Torchvision, Numpy 및 PIL과 같은 주요 라이브러리를 지원하지만 VSCODE와 같은 개발 환경과의 통합은 여전히 개발 중입니다. 이것은 대화식 디버깅 기능이 아직 완전히 성숙하지 않음을 의미합니다 [2].
인용 :[1] https://arxiv.org/pdf/2112.09037.pdf
[2] https://www.reddit.com/r/machinelearning/comments/rm4fgz/p_a_static_analyzer_for_detecting_tensor_shape/
[3] https://sf.snu.ac.kr/pytea/
[4] https://www.researchgate.net/publication/370473038_static_analysis_of_shape_in_tensorflow_programs
[5] https://github.com/ropas/pytea
[6] https://arxiv.org/pdf/2106.02887.pdf
[7] https://dl.acm.org/doi/10.1145/3510454.3528638
[8] https://towardsdatascience.com/understanding-tensors-learning-a-data-tructure-through-3-pesky-errors-6d674776be0c/