LiteRT for Microcontrollers C++ 라이브러리는 TensorFlow 저장소. 읽기 쉽고, 수정하기 쉽고, 테스트를 잘 거치고, 통합하기 쉽고, 일반 LiteRT와 호환됩니다.
다음 문서는 C++ 라이브러리의 기본 구조와 에는 자체 프로젝트 만들기에 대한 정보가 나와 있습니다.
파일 구조
이
micro
드림
루트 디렉터리의 구조는 비교적 간단합니다. 하지만 Kubernetes가
우리는 대규모 TensorFlow 리포지토리 내에서 스크립트와
관련 소스 파일을 격리된 상태로 제공하는 사전 생성된 프로젝트 파일
애플리케이션을 실행할 수 있습니다
키 파일
마이크로컨트롤러용 LiteRT를 사용하기 위해 가장 중요한 파일은 인터프리터가 테스트와 함께 프로젝트의 루트에 있습니다.
[`micro_mutable_op_resolver.h`](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/micro_mutable_op_resolver.h)
can be used to provide the operations used by the interpreter to run the
model.
micro_error_reporter.h
드림 디버그 정보를 출력합니다.micro_interpreter.h
드림 모델을 처리하고 실행하는 코드가 들어 있습니다.
마이크로 컨트롤러 시작하기에서 일반적인 사용법 둘러보기
빌드 시스템은
할 수 있습니다. 이는 플랫폼 이름이 있는 디렉터리에 있습니다. 예를 들어
cortex-m
다음을 포함한 여러 다른 디렉터리가 있습니다.
새 프로젝트 시작
Hello World 예를 새 프로젝트의 템플릿으로 사용하는 것이 좋습니다. 나 다음 단계에 따라 선택한 플랫폼에 맞는 버전의 패키지를 받을 수 있습니다 이 섹션의 안내를 따르세요.
Arduino 라이브러리 사용
Arduino를 사용하는 경우 Hello World 예제가
Arduino_TensorFlowLite
Arduino 라이브러리로,
Arduino IDE 및 Arduino Create에 있음.
라이브러리가 추가되면 File -> Examples
로 이동합니다. 그러면
TensorFlowLite:hello_world
라는 목록 하단 근처에 있습니다. 선택
hello_world
를 클릭하여 예시를 로드합니다. 그런 다음
이를 자신의 프로젝트의 기초로 사용할 수 있습니다.
다른 플랫폼용 프로젝트 생성
독립형 프로젝트를 생성할 수 있는 Microcontrollers용 LiteRT
Makefile
를 사용하여 필요한 모든 소스 파일을 포함합니다. 현재
지원되는 환경에는 Keil, Make, Mbed가 있습니다.
Make로 이러한 프로젝트를 생성하려면 TensorFlow/tflite-micro 저장소 다음 명령어를 실행합니다.
make -f tensorflow/lite/micro/tools/make/Makefile generate_projects
이 작업에는 몇 분 정도 걸립니다.
살펴보겠습니다 완료되면 일부 폴더가 생성된 것을 볼 수 있습니다.
gen/linux_x86_64/prj/
(
정확한 경로는 호스트 운영체제에 따라 다름). 이 폴더에는
프로젝트 및 소스 파일을
생성할 수 있습니다
명령어를 실행한 후 Hello World 프로젝트를
gen/linux_x86_64/prj/hello_world
입니다. 대상
예를 들어 hello_world/keil
에는 Keil 프로젝트가 포함됩니다.
테스트 실행
라이브러리를 빌드하고 모든 단위 테스트를 실행하려면 다음 명령어를 사용합니다.
make -f tensorflow/lite/micro/tools/make/Makefile test
개별 테스트를 실행하려면 다음 명령어를 사용합니다. 여기서 <test_name>
는 바꿉니다.
테스트 이름으로 바꿉니다.
make -f tensorflow/lite/micro/tools/make/Makefile test_<test_name>
테스트 이름은 프로젝트의 Makefile에서 확인할 수 있습니다. 예를 들어
examples/hello_world/Makefile.inc
는 Hello
World 예시
빌드 바이너리
주어진 프로젝트 (예: 예시 애플리케이션)를 위한 실행 가능한 바이너리를 빌드하려면
다음 명령어를 사용하여 <project_name>
를 원하는 프로젝트로 바꿉니다.
있습니다.
make -f tensorflow/lite/micro/tools/make/Makefile <project_name>_bin
예를 들어 다음 명령어는 Hello World용 바이너리를 빌드합니다. 애플리케이션:
make -f tensorflow/lite/micro/tools/make/Makefile hello_world_bin
기본적으로 프로젝트는 호스트 운영체제에 맞게 컴파일됩니다. 받는사람
다른 대상 아키텍처를 지정하려면 TARGET=
및 TARGET_ARCH=
를 사용하세요. 이
다음 예에서는 일반 Google Cloud의 Hello World 예를 빌드하는 방법을 보여줍니다.
Cortex-m0:
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=cortex_m_generic TARGET_ARCH=cortex-m0 hello_world_bin
대상이 지정되면 사용 가능한 모든 대상별 소스 파일이
가 원본 코드 대신 사용됩니다. 예를 들어
examples/hello_world/cortex_m_generic
에는 SparkFun Edge 구현이 포함되어 있습니다.
파일(constants.cc
및 output_handler.cc
)이 포함되어 있으며 이는
타겟 cortex_m_generic
이(가) 지정되었습니다.
프로젝트 이름은 프로젝트의 Makefile에서 확인할 수 있습니다. 예를 들어
examples/hello_world/Makefile.inc
는 Hello
World 예시
최적화된 커널
tensorflow/lite/micro/kernels
의 루트에 있는 참조 커널은 다음과 같습니다.
순수 C/C++로 구현되며 플랫폼별 하드웨어를 포함하지 않음
최적화할 수 있습니다
최적화된 버전의 커널은 하위 디렉터리에 제공됩니다. 예를 들어
kernels/cmsis-nn
에는 Arm의
CMSIS-NN 라이브러리를 제공합니다.
최적화된 커널을 사용하여 프로젝트를 생성하려면 다음 명령어를 사용합니다.
<subdirectory_name>
을
최적화:
make -f tensorflow/lite/micro/tools/make/Makefile TAGS=<subdirectory_name> generate_projects
새로운 하위 폴더를 만들어 자체 최적화를 추가할 수 있습니다. 새롭게 최적화된 구현에 대한 pull 요청을 장려합니다.
Arduino 라이브러리 생성
라이브러리의 새 빌드를 생성해야 하는 경우 다음을 실행할 수 있습니다. 스크립트를 실행합니다.
./tensorflow/lite/micro/tools/ci_build/test_arduino.sh
결과 라이브러리는
gen/arduino_x86_64/prj/tensorflow_lite.zip
새 기기로 포팅
마이크로컨트롤러용 LiteRT를 새로운 플랫폼으로 포팅하는 방법과
다음에서 기기를 찾을 수 있습니다.
micro/docs/new_platform_support.md