TensorFlow Lite for Microcontrollers

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

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

마이크로 컨트롤러는 일반적으로 기본적인 컴퓨팅이 필요한 하드웨어에 삽입되는 소형 저전력 컴퓨팅 기기입니다. 소형 마이크로 컨트롤러에 머신러닝을 도입하면 흔히 대역폭 및 전력 제약이 적용되어 지연 시간이 길어지는 안정적인 인터넷 연결이나 값비싼 하드웨어에 의존하지 않고도 가전제품, 사물 인터넷 기기 등 생활 속에서 사용하는 수십억 기기의 인텔리전스를 강화할 수 있습니다. 기기에서 나가는 데이터가 없으므로 개인정보도 보호할 수 있습니다. 일상 업무에 적응할 수 있는 스마트 가전, 문제와 일반 작업의 차이를 파악하는 지능형 산업 센서, 어린이가 신나고 재미있게 배우도록 돕는 마술 장난감을 상상해 보세요.

지원되는 플랫폼

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

다음과 같은 개발 보드가 지원됩니다.

예 살펴보기

각 애플리케이션 예는 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
  • 기기 내 학습은 지원되지 않음

다음 단계