AXC F2152용 LiteRT Python Wheel 빌드 방법
지난달 구글은 TensorFlow Lite를 LiteRT로 리브랜딩/이름 변경을 발표했습니다(기사 링크). 이는 Google AI Edge와 함께 엣지 컴퓨팅 패러다임에서 관련성을 유지하려는 재정비된 시도의 일부가 될 것입니다.
이미 TensorFlow Lite(NumPy, OpenCV와 함께)를 교육 목적으로 PLCnext Store의 앱을 통해 제공한 바 있습니다(앱 링크). 그러나 이 앱은 사용자가 완전히 다른 것을 시도하거나 다른 라이브러리를 포함하고 싶어도 미리 패키지된 솔루션만 사용하도록 제한합니다.
최근 앱을 업데이트하면서 방법을 다시 상기할 필요가 있어, 이 포스트를 작성해 AXC F 2152용 TensorFlow Lite Runtime 교차 컴파일 방법을 설명하기로 했습니다.
마지막 단계의 실행 과정이 꽤 복잡해 보일 수 있는데, 공개된 라이브러리가 AXC F 2152의 프로세서 아키텍처를 직접 지원하지 않아 교차 컴파일이 필요하기 때문입니다.
참고: 이 절차는 다음에서 테스트되었습니다:
- 가상화된 UBUNTU 22.04 터미널.
- 가상 머신에 27GB RAM과 16GB 스왑 파일[교차 컴파일 프로세스에 매우 중요], 24코어 사용.
- 32GB RAM과 Core i7-12850HX 프로세서의 호스트 머신.
참고 2: RAM 양은 교차 컴파일 프로세스를 안정적으로 유지하고 최대한 빠르게 실행할 수 있게 합니다. RAM이 적은 설정에서는 교차 컴파일 프로세스를 실행할 수 없거나 너무 오래 걸릴 수 있습니다(내 경험상 최대 몇 시간).
- 원하는 버전의 TensorFlow 소스 코드를 다운로드합니다. https://github.com/tensorflow/tensorflow/releases/
- 선택한 폴더에 압축을 풉니다. 다음 항목에서는 "myfolder"를 사용하겠습니다.
- "
/myfolder/tensorflow-2.XX.0/tensorflow/lite/tools/pip_package/Makefile"의 Makefile로 이동해 기본 이미지, Python 버전, NumPy 버전을 시스템과 일치하도록 수정합니다. 예:
- "
/myfolder/tensorflow-2.XX.0/tensorflow/lite/tools/cmake/download_toolchains.sh"에 있는 downloadtoolchains.sh로 이동해 armhf용 기본 플래그를 다음과 같이 수정합니다:
-
TensorFlow 폴더(/myfolder/tensorflow-2.XX.0) 내에서 다음 명령을 실행합니다: "make -C tensorflow/lite/tools/pip_package docker-build \ TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.10"
-
경고: 이전 단계의 프로세스는 많은 시간이 걸릴 수 있습니다. 인내심을 가지세요.
-
프로세스 완료 후 "tensorflow-2.XX.0/tensorflow/lite/tools/pip_package/gen/tflite_pip/python3.10/dist"에서 Python wheel을 가져와 컨트롤러로 전송하고 pip로 설치합니다.
알림: 내 경험상 이 프로세스는 Python 3.9, 3.10, 3.11과 릴리스 2.14~2.16.2에서 작동합니다. 그러나 2.17 이상 버전에는 버그가 있습니다. TensorFlow GitHub 저장소에 열린 이슈가 있으며 여기에서 추적할 수 있습니다. 향후 릴리스에서 해결되길 바랍니다.
참고:
Makers Blog는 Phoenix Contact에서 테스트하거나 검토하지 않은 커뮤니티 구성원의 애플리케이션과 사용자 스토리를 보여줍니다. 자신의 책임 하에 사용하세요.