마이크로컨트롤러용 TensorFlow Lite

TensorFlow Lite for Microcontrollers는 몇 킬로바이트의 메모리만 있는 마이크로 컨트롤러 및 기타 기기에서 머신러닝 모델을 실행하도록 설계되었습니다. 코어 런타임은 Arm Cortex M3에서 16KB로 적합하며 여러 기본 모델을 실행할 수 있습니다. 운영체제 지원, 표준 C 또는 C++ 라이브러리 또는 동적 메모리 할당이 필요하지 않습니다.

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

마이크로 컨트롤러는 일반적으로 기본적인 계산이 필요한 하드웨어에 삽입되는 소형 저전력 컴퓨팅 기기입니다. 아주 작은 마이크로컨트롤러에 머신러닝을 접목함으로써 고가의 하드웨어나 안정적인 인터넷 연결(대역폭 및 전력 제약과 높은 지연 시간)에 의존하지 않고도 가전제품, 사물 인터넷 기기 등 생활에서 사용하는 수십억 대의 기기에 대한 인텔리전스를 강화할 수 있습니다. 또한 기기에서 나가는 데이터가 없으므로 개인 정보 보호를 유지할 수 있습니다. 일상의 루틴에 적응할 수 있는 스마트 가전제품, 문제와 정상적인 작동의 차이를 이해하는 지능형 산업 센서, 아이들이 재미있고 즐거운 방식으로 학습하도록 도와주는 마법의 장난감을 상상해 보세요.

지원되는 플랫폼

TensorFlow Lite for Microcontrollers는 C++ 17로 작성되었으며 32비트 플랫폼이 필요합니다. Arm Cortex-M 시리즈 아키텍처를 기반으로 하는 많은 프로세서를 통해 광범위하게 테스트되었으며 ESP32를 포함한 다른 아키텍처로 포팅되었습니다. 프레임워크는 Arduino 라이브러리로 제공됩니다. 또한 Mbed와 같은 개발 환경을 위한 프로젝트를 생성할 수 있습니다. 오픈소스이며 모든 C++ 17 프로젝트에 포함될 수 있습니다.

지원되는 개발 보드는 다음과 같습니다.

예시 살펴보기

각 예시 애플리케이션은 GitHub에 있으며 지원되는 플랫폼에 배포하는 방법을 설명하는 README.md 파일이 있습니다. 아래와 같이 특정 플랫폼을 사용하는 엔드 투 엔드 튜토리얼이 있는 예도 있습니다.

워크플로

다음 단계는 마이크로 컨트롤러에서 TensorFlow 모델을 배포하고 실행하는 데 필요합니다.

  1. 모델 학습:
    • 대상 기기에 적합하고 지원되는 작업을 포함하는 소형 TensorFlow 모델을 생성합니다.
    • TensorFlow Lite 변환기를 사용하여 TensorFlow Lite 모델로 변환합니다.
    • 표준 도구를 사용하여 C 바이트 배열로 변환하여 기기의 읽기 전용 프로그램 메모리에 저장합니다.
  2. C++ 라이브러리를 사용하여 기기에서 추론을 실행하고 결과를 처리합니다.

제한사항

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

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

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

다음 단계