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

일반적으로 표준 TensorFlow Lite 런타임 환경은 Android에서 모델을 실행하기 위한 가장 다양한 환경이기 때문에 사용해야 합니다. Google Play 서비스에서 제공하는 런타임 환경은 앱에 번들로 제공되지 않고 Google Play 리소스에서 로드되기 때문에 표준 환경보다 더 편리하고 공간 효율적입니다. 일부 고급 사용 사례에는 고급 런타임 환경 섹션에 설명된 모델 런타임 환경의 사용자 정의가 필요합니다.

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

개발 API 및 라이브러리

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

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

도서관

Android 앱에 TensorFlow Lite 태스크 라이브러리 를 포함하여 태스크 API에 액세스할 수 있습니다. 작업 라이브러리에는 필요한 경우 Interpreter API 클래스 및 메서드도 포함되어 있습니다.

Interpreter API만 사용하려는 경우 TensorFlow Lite 라이브러리 를 포함할 수 있습니다. 또는 TensorFlow Lite용 Google Play 서비스 라이브러리 를 포함하고 별도의 라이브러리를 앱에 번들로 묶지 않고도 Play 서비스를 통해 Interpreter API에 액세스할 수 있습니다.

TensorFlow Lite 지원 라이브러리 는 또한 모델, 모델 메타데이터 및 모델 추론 결과에 대한 데이터 관리를 위한 추가 기능을 제공하는 데 사용할 수 있습니다.

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와 함께 사용할 고성능 모델을 구축하는 방법에 대한 자세한 내용은 모델 섹션의 성능 모범 사례 를 참조하세요.

다음 단계