Android용 TensorFlow Lite

TensorFlow Lite를 사용하면 Android 앱에서 TensorFlow 머신 러닝(ML) 모델을 실행할 수 있습니다. TensorFlow Lite 시스템은 하드웨어 가속 옵션을 포함하여 Android에서 모델을 빠르고 효율적으로 실행하기 위해 사전 구축되고 사용자 지정 가능한 실행 환경을 제공합니다.

학습 로드맵

TensorFlow Lite로 Android 앱을 빌드하기 위한 개념과 코드 디자인을 배우고 계속 읽으 십시오.
빠른 시작 과 함께 TensorFlow Lite로 Android 앱 코딩을 바로 시작하세요.
TensorFlow Lite로 ML 모델을 선택하고 사용하는 방법에 대해 알아보세요. 모델 문서를 참조하세요.

기계 학습 모델

TensorFlow Lite는 더 작고 휴대 가능하며 효율적인 기계 학습 모델 형식으로 변환되는 TensorFlow 모델을 사용합니다. Android에서 TensorFlow Lite와 함께 사전 빌드된 모델을 사용하거나 고유한 TensorFlow 모델을 빌드하고 TensorFlow Lite 형식으로 변환할 수 있습니다.

이 페이지에서는 이미 구축된 기계 학습 모델 사용에 대해 설명하며 모델 구축, 교육, 테스트 또는 변환은 다루지 않습니다. 모델 섹션에서 TensorFlow Lite용 기계 학습 모델 선택, 수정, 구축 및 변환에 대해 자세히 알아보세요.

Android에서 모델 실행

Android 앱 내에서 실행되는 TensorFlow Lite 모델은 데이터를 가져와서 데이터를 처리하고 모델의 논리를 기반으로 예측을 생성합니다. TensorFlow Lite 모델을 실행하려면 특별한 런타임 환경이 필요하며 모델에 전달되는 데이터는 tensor 라고 하는 특정 데이터 형식이어야 합니다. 모델이 추론 실행이라고 하는 데이터를 처리할 때 예측 결과를 새 텐서로 생성하고 이를 Android 앱에 전달하여 사용자에게 결과를 표시하거나 추가 비즈니스 로직을 실행하는 등의 조치를 취할 수 있습니다.

Android 앱의 TensorFlow Lite 모델에 대한 기능 실행 흐름

그림 1. Android 앱에서 TensorFlow Lite 모델의 기능 실행 흐름.

기능적 디자인 수준에서 Android 앱은 TensorFlow Lite 모델을 실행하기 위해 다음 요소가 필요합니다.

  • 모델 실행을 위한 TensorFlow Lite 런타임 환경
  • 데이터를 텐서로 변환하는 모델 입력 핸들러
  • 출력 결과 텐서를 수신하고 예측 결과로 해석하는 출력 핸들러를 모델링합니다 .

다음 섹션에서는 TensorFlow Lite 라이브러리 및 도구가 이러한 기능 요소를 제공하는 방법을 설명합니다.

TensorFlow Lite로 앱 빌드

이 섹션에서는 Android 앱에서 TensorFlow Lite를 구현하기 위한 가장 일반적인 권장 경로를 설명합니다. 런타임 환경개발 라이브러리 섹션에 가장 주의를 기울여야 합니다. 사용자 지정 모델을 개발한 경우 고급 개발 경로 섹션을 검토하십시오.

런타임 환경 옵션

Android 앱에서 모델을 실행하기 위해 런타임 환경을 활성화하는 방법에는 여러 가지가 있습니다. 다음은 기본 옵션입니다.

일반적으로 Google Play 서비스에서 제공하는 런타임 환경은 동적으로 로드되어 앱 크기를 작게 유지하므로 표준 환경보다 공간 효율적이기 때문에 사용해야 합니다. 또한 Google Play 서비스는 가장 최근의 안정적인 TensorFlow Lite 런타임 릴리스를 자동으로 사용하여 시간이 지남에 따라 추가 기능과 향상된 성능을 제공합니다. Google Play 서비스가 포함되지 않은 기기에서 앱을 제공하거나 ML 런타임 환경을 면밀히 관리해야 하는 경우 표준 TensorFlow Lite 런타임을 사용해야 합니다. 이 옵션은 앱에 추가 코드를 번들로 제공하므로 앱의 다운로드 크기를 늘리는 대신 앱의 ML 런타임을 더 많이 제어할 수 있습니다.

앱 개발 환경에 TensorFlow Lite 개발 라이브러리를 추가하여 Android 앱에서 이러한 런타임 환경에 액세스합니다. 앱에서 표준 런타임 환경을 사용하는 방법에 대한 정보는 다음 섹션을 참조하십시오.

개발 API 및 라이브러리

TensorFlow Lite 기계 학습 모델을 Android 앱에 통합하는 데 사용할 수 있는 두 가지 주요 API가 있습니다.

Interpreter API 는 기존 TensorFlow Lite 모델로 추론을 실행하기 위한 클래스와 메서드를 제공합니다. TensorFlow Lite Task API 는 Interpreter API를 래핑하고 시각적, 오디오 및 텍스트 데이터 처리에 대한 일반적인 기계 학습 작업을 수행하기 위한 상위 수준 프로그래밍 인터페이스를 제공합니다. 특정 사용 사례를 지원하지 않는 경우가 아니면 작업 API를 사용해야 합니다.

도서관

Google Play 서비스 를 사용하여 Task API 또는 Interpreter API에 액세스할 수 있습니다. TensorFlow Lite Tasks 또는 TensorFlow Lite 코어 용 독립 실행형 라이브러리를 사용하고 Android 앱에서 라이브러리를 지원할 수도 있습니다. TensorFlow Lite 라이브러리 및 런타임 환경 사용에 대한 프로그래밍 세부 정보 는 Android용 개발 도구를 참조하세요.

모델 얻기

Android 앱에서 모델을 실행하려면 TensorFlow Lite 형식 모델이 필요합니다. 미리 빌드된 모델을 사용하거나 TensorFlow로 빌드하고 Lite 형식으로 변환할 수 있습니다. Android 앱용 모델 가져오기에 대한 자세한 내용은 TensorFlow Lite 모델 섹션을 참조하세요.

입력 데이터 처리

ML 모델에 전달하는 모든 데이터는 종종 텐서의 모양 이라고 하는 특정 데이터 구조를 가진 텐서여야 합니다. 모델로 데이터를 처리하려면 앱 코드에서 이미지, 텍스트 또는 오디오 데이터와 같은 기본 형식의 데이터를 모델에 필요한 모양의 텐서로 변환해야 합니다.

TensorFlow Lite Task 라이브러리 는 시각적, 텍스트 및 오디오 데이터를 TensorFlow Lite 모델에서 처리할 올바른 모양의 텐서로 변환하기 위한 데이터 처리 논리를 제공합니다.

추론 실행

모델을 통해 데이터를 처리하여 예측 결과를 생성하는 것을 추론 실행이라고 합니다. Android 앱에서 추론을 실행하려면 TensorFlow Lite 런타임 환경 , 모델입력 데이터 가 필요합니다.

모델이 특정 장치에 대한 추론을 생성할 수 있는 속도는 처리되는 데이터의 크기, 모델의 복잡성, 메모리 및 CPU와 같은 사용 가능한 컴퓨팅 리소스 또는 가속기 라고 하는 특수 프로세서에 따라 다릅니다. 머신 러닝 모델은 대리자 라고 하는 TensorFlow Lite 하드웨어 드라이버를 사용하여 GPU(그래픽 처리 장치) 및 TPU(텐서 처리 장치)와 같은 특수 프로세서에서 더 빠르게 실행할 수 있습니다. 모델 처리의 대리자 및 하드웨어 가속에 대한 자세한 내용은 하드웨어 가속 개요 를 참조하십시오.

출력 결과 처리

모델은 예측 결과를 텐서로 생성하며, 이는 Android 앱에서 조치를 취하거나 결과를 사용자에게 표시하여 처리해야 합니다. 모델 출력 결과는 이미지 분류에 대한 단일 결과(0 = 개, 1 = 고양이, 2 = 새)에 해당하는 숫자만큼 간단할 수 있으며, 여러 분류된 객체에 대한 여러 경계 상자와 같은 훨씬 더 복잡한 결과에 이르기까지 다양합니다. 예측 신뢰도가 0에서 1 사이인 이미지입니다.

고급 개발 경로

보다 정교하고 사용자 정의된 TensorFlow Lite 모델을 사용하는 경우 위에 설명된 것보다 더 고급 개발 접근 방식을 사용해야 할 수도 있습니다. 다음 섹션에서는 Android 앱에서 TensorFlow Lite용 모델을 실행하고 개발하기 위한 고급 기술을 설명합니다.

고급 런타임 환경

TensorFlow Lite용 표준 런타임 및 Google Play 서비스 런타임 환경 외에도 Android 앱에서 사용할 수 있는 추가 런타임 환경이 있습니다. 이러한 환경은 TensorFlow Lite의 표준 런타임 환경에서 지원하지 않는 ML 작업을 사용하는 기계 학습 모델이 있는 경우에 가장 많이 사용됩니다.

  • TensorFlow Lite용 Flex 런타임
  • 맞춤형 TensorFlow Lite 런타임

TensorFlow Lite Flex 런타임 을 사용하면 모델에 필요한 특정 연산자를 포함할 수 있습니다. 모델 실행을 위한 고급 옵션으로 TensorFlow 기계 학습 모델을 실행하는 데 필요한 연산자 및 기타 기능을 포함하도록 Android용 TensorFlow Lite를 빌드할 수 있습니다. 자세한 내용 은 Android용 TensorFlow Lite 빌드 를 참조하세요.

C 및 C++ API

TensorFlow Lite는 C 및 C++를 사용하여 모델을 실행하기 위한 API도 제공합니다. 앱이 Android NDK 를 사용하는 경우 이 API 사용을 고려해야 합니다. 여러 플랫폼 간에 코드를 공유할 수 있도록 하려는 경우 이 API 사용을 고려할 수도 있습니다. 이 개발 옵션에 대한 자세한 내용은 개발 도구 페이지를 참조하세요.

서버 기반 모델 실행

일반적으로 Android 기기의 앱에서 모델을 실행하여 사용자의 지연 시간을 줄이고 데이터 개인 정보를 개선해야 합니다. 그러나 장치가 아닌 클라우드 서버에서 모델을 실행하는 것이 더 나은 솔루션인 경우가 있습니다. 예를 들어 사용자의 Android 장치에 맞는 크기로 쉽게 압축되지 않거나 해당 장치에서 합리적인 성능으로 실행할 수 있는 대형 모델이 있는 경우입니다. 이 접근 방식은 광범위한 장치에서 모델의 일관된 성능이 최우선 순위인 경우 선호하는 솔루션일 수도 있습니다.

Google Cloud는 TensorFlow 머신러닝 모델을 실행하기 위한 전체 서비스 제품군을 제공합니다. 자세한 내용은 Google Cloud의 AI 및 머신러닝 제품 페이지를 참조하세요.

맞춤형 모델 개발 및 최적화

고급 개발 경로에는 맞춤형 기계 학습 모델 개발 및 Android 기기에서 사용하기 위해 해당 모델 최적화가 포함될 수 있습니다. 사용자 지정 모델을 구축하려는 경우 메모리 및 처리 비용을 줄이기 위해 모델에 양자화 기술 을 적용하는 것을 고려해야 합니다. TensorFlow Lite와 함께 사용할 고성능 모델을 구축하는 방법에 대한 자세한 내용은 모델 섹션의 성능 모범 사례 를 참조하세요.

다음 단계