TensorFlow Lite for Microcontrollers

TensorFlow Lite for Microcontrollers는 킬로바이트의 메모리만 있는 마이크로 컨트롤러 및 기타 기기에서 머신러닝 모델을 실행하도록 설계된 TensorFlow Lite의 실험용 포트입니다.

운영체제 지원, 표준 C 또는 C++ 라이브러리 또는 동적 메모리 할당이 필요하지 않습니다. 핵심 런타임은 Arm Cortex M3에서 16KB로 적합하며 음성 키워드 감지 모델을 실행하기에 충분한 연산자가 있을 때 총 22KB를 차지합니다.

절전 모드 해제 단어 감지, 가속도계 데이터의 동작 분류 및 카메라 데이터를 사용한 이미지 분류를 비롯하여, 작업에 마이크로 컨트롤러를 사용하는 방법을 보여주는 예시 애플리케이션이 있습니다.

시작하기

예시 애플리케이션을 사용하고 API 사용 방법을 알아보려면 마이크로 컨트롤러 시작하기를 참조하세요.

지원되는 플랫폼

TensorFlow Lite for Microcontrollers는 C++ 11로 작성되었으며 32비트 플랫폼이 필요합니다. Arm Cortex-M 시리즈 아키텍처를 기반으로 하는 여러 프로세서를 통해 광범위하게 테스트되었으며 ESP32를 포함한 다른 아키텍처로 이전되었습니다.

프레임워크는 Arduino 라이브러리로 제공됩니다. 또한 Mbed와 같은 개발 환경을 위한 프로젝트를 생성할 수 있습니다. 오픈소스이며 C++ 11 프로젝트에 포함될 수 있습니다.

다음 개발 보드에서 사용할 수 있는 예시 애플리케이션이 있습니다.

라이브러리 및 예시에 관해 자세히 알아보려면 마이크로 컨트롤러 시작하기를 참조하세요.

마이크로 컨트롤러가 중요한 이유

마이크로 컨트롤러는 일반적으로 가전제품 및 IoT 기기를 포함하여 기본적인 컴퓨팅이 필요한 하드웨어에 흔히 내장되는 저전력 소형 컴퓨팅 기기입니다. 매년 수십억 개의 마이크로 컨트롤러가 제조됩니다.

마이크로 컨트롤러는 흔히 처리 전력, 메모리 및 저장소 비용을 절감하면서 낮은 에너지 소비와 작은 크기에 최적화됩니다. 일부 마이크로 컨트롤러는 머신러닝 작업의 성능을 최적화하도록 설계된 기능을 갖추고 있습니다.

마이크로 컨트롤러에서 머신러닝 추론을 실행함으로써 개발자는 흔히 대역폭 및 전력 제약이 적용되어 지연 시간이 길어지는 네트워크 연결을 사용하지 않고도 광범위한 하드웨어 기기에 AI를 추가할 수 있습니다. 또한 기기에서 추론을 실행하면 데이터가 기기를 벗어나지 않아도 되므로 개인정보를 보호할 수 있습니다.

개발자 워크플로

TensorFlow 모델을 마이크로 컨트롤러에 배포하려면 다음 프로세스를 따라야 합니다.

  1. TensorFlow 모델 생성 또는 가져오기

    모델은 변환 후 대상 기기에 맞을 만큼 작아야 하며 지원되는 작업만 사용할 수 있습니다. 현재 지원되지 않는 작업을 사용하고자 할 때는 자체 구현을 제공할 수 있습니다.

  2. 모델을 TensorFlow Lite FlatBuffer로 변환

    TensorFlow Lite 변환기를 사용하여 모델을 표준 TensorFlow Lite 형식으로 변환합니다. 개발자는 크기가 더 작고 실행하기에 더 효율적이기 때문에 양자화된 모델을 출력하려고 할 수 있습니다.

  3. FlatBuffer를 C 바이트 배열로 변환

    모델은 읽기 전용 프로그램 메모리에 유지되며 간단한 C 파일 형식으로 제공됩니다. 표준 도구를 사용하여 FlatBuffer를 C 배열로 변환할 수 있습니다.

  4. TensorFlow Lite for Microcontrollers C++ 라이브러리 통합

    마이크로 컨트롤러 코드를 작성하여 데이터를 수집하고, C++ 라이브러리를 사용해 추론을 실행하며, 결과를 활용합니다.

  5. 기기에 배포

    기기에 프로그램을 빌드하고 배포합니다.

제한사항

TensorFlow Lite for Microcontrollers는 마이크로 컨트롤러 개발의 특정 제약을 위해 설계되었습니다. 더 강력한 기기(예: Raspberry Pi와 같은 내장형 Linux 기기)에서 작업하는 경우에는 표준 TensorFlow Lite 프레임워크가 통합하기에 더 쉬울 수 있습니다.

다음 제한사항을 고려해야 합니다.

  • TensorFlow 작업의 제한된 하위 집합 지원
  • 제한된 기기 세트 지원
  • 수동 메모리 관리가 필요한 하위 수준 C++ API
  • 학습이 지원되지 않음

다음 단계

마이크로 컨트롤러 시작하기를 참조하여 예시 애플리케이션을 사용하고 API 사용 방법을 알아보세요.