

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# TensorFlow Lite 런타임
<a name="tensorflow-lite-component"></a>

TensorFlow Lite 런타임 구성 요소(`variant.TensorFlowLite`)에는 디바이스의 가상 환경에 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 버전 2.5.0 및 해당 종속성을 설치하는 스크립트가 포함되어 있습니다. [TensorFlow Lite 이미지 분류](tensorflow-lite-image-classification-component.md) 및 [TensorFlow Lite 객체 감지](tensorflow-lite-object-detection-component.md) 구성 요소는 이 런타임 구성 요소를 TensorFlow Lite 설치를 위한 종속성으로 사용합니다.

**참고**  
TensorFlow Lite 런타임 구성 요소 v2.5.6 이상은 TensorFlow Lite 런타임 및 해당 종속성의 기존 설치를 재설치합니다. 이 재설치는 코어 디바이스에서 TensorFlow Lite의 호환 버전과 해당 종속성을 실행하는 데 도움이 됩니다.

다른 런타임을 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 [사용자 지정 기계 학습 구성 요소](ml-customization.md)를 생성하면 됩니다.

**Topics**
+ [버전](#tensorflow-lite-component-versions)
+ [유형](#tensorflow-lite-component-type)
+ [운영 체제](#tensorflow-lite-component-os-support)
+ [요구 사항](#tensorflow-lite-component-requirements)
+ [종속성](#tensorflow-lite-component-dependencies)
+ [구성](#tensorflow-lite-component-configuration)
+ [사용법](#tensorflow-lite-component-usage)
+ [로컬 로그 파일](#tensorflow-lite-component-log-file)
+ [Changelog](#tensorflow-lite-component-changelog)

## 버전
<a name="tensorflow-lite-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.5.x

## 유형
<a name="tensorflow-lite-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="tensorflow-lite-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="tensorflow-lite-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

### 엔드포인트 및 포트
<a name="tensorflow-lite-component-endpoints"></a>

기본적으로 이 구성 요소에 코어 디바이스에서 사용하는 플랫폼에 따라 `apt`, `yum`, `brew`, `pip` 명령을 사용하여 패키지를 설치하는 설치 관리자 스크립트를 사용합니다. 이 구성 요소는 설치 관리자 스크립트를 실행하기 위해 다양한 패키지 인덱스 및 리포지토리에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 프록시 또는 방화벽을 통해 이 구성 요소의 아웃바운드 트래픽을 허용하려면 코어 디바이스가 설치를 위해 연결되는 패키지 인덱스 및 리포지토리의 엔드포인트를 식별해야 합니다.

이 구성 요소의 설치 스크립트에 필요한 엔드포인트를 식별하는 경우 다음 사항을 고려하세요.
+ 엔드포인트는 코어 디바이스의 플랫폼에 따라 다릅니다. 예를 들어 Ubuntu를 실행하는 코어 디바이스는 `yum` 또는 `brew` 대신 `apt`를 사용합니다. 또한 동일한 패키지 인덱스를 사용하는 디바이스의 소스 목록은 다를 수 있으므로 서로 다른 리포지토리에서 패키지를 검색할 수 있습니다.
+ 각 디바이스에는 패키지를 검색할 위치를 정의하는 자체 소스 목록이 있으므로 동일한 패키지 인덱스를 사용하는 여러 디바이스 간에 엔드포인트가 다를 수 있습니다.
+ 엔드포인트는 시간이 지남에 따라 변경될 수 있습니다. 각 패키지 인덱스는 패키지를 다운로드하는 리포지토리의 URL을 제공하며 패키지 소유자는 패키지 인덱스가 제공하는 URL을 변경할 수 있습니다.

이 구성 요소에서 설치하는 종속성에 대한 자세한 내용과 설치 프로그램 스크립트를 비활성화하는 방법은 [UseInstaller](#tensorflow-lite-component-config-useinstaller-term) 구성 파라미터를 참조하세요.

기본 작업에 필요한 엔드포인트와 포트에 대한 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 섹션을 참조하세요.

## 종속성
<a name="tensorflow-lite-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#tensorflow-lite-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.5.14 and 2.5.15 ]

다음 표에는 이 구성 요소의 버전 2.5.14 및 2.5.15에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 

------
#### [ 2.5.13 ]

다음 표에는 이 구성 요소의 버전 2.5.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 

------
#### [ 2.5.12 ]

다음 표에는 이 구성 요소의 버전 2.5.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 

------
#### [ 2.5.11 ]

다음 표에는 이 구성 요소의 버전 2.5.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 

------
#### [ 2.5.10 ]

다음 표에는 이 구성 요소의 버전 2.5.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 2.5.9 ]

다음 표에는 이 구성 요소의 버전 2.5.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 2.5.8 ]

다음 표에는 이 구성 요소의 버전 2.5.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 2.5.5 - 2.5.7 ]

다음 표에는 이 구성 요소의 버전 2.5.5\$12.5.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 2.5.3 and 2.5.4 ]

다음 표에는 이 구성 요소의 버전 2.5.3 및 2.5.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 2.5.2 ]

다음 표에는 이 구성 요소의 버전 2.5.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 2.5.1 ]

다음 표에는 이 구성 요소의 버전 2.5.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 2.5.0 ]

다음 표에는 이 구성 요소의 버전 2.5.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="tensorflow-lite-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`MLRootPath`  
<a name="ml-config-mlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Linux 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-mlrootpath-default-tfl"></a>기본값: `/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml`

`WindowsMLRootPath`  
이 기능은 이 구성 요소의 v1.6.6 이상에 사용할 수 있습니다.  
<a name="ml-config-windowsmlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Windows 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-windowsmlrootpath-default-dlr"></a>기본값: `C:\greengrass\v2\\work\\variant.DLR\\greengrass_ml`

  `UseInstaller`   
<a name="ml-config-useinstaller-desc-tfl"></a>(선택 사항) 이 구성 요소의 설치 관리자 스크립트를 사용하여 TensorFlow Lite와 해당 종속성을 설치할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  <a name="ml-config-useinstaller-libraries-tfl"></a>

TensorFlow Lite 설치에 사용자 지정 스크립트를 사용하려는 경우 또는 사전 빌드된 Linux 이미지에 런타임 종속성을 포함하려는 경우에는 이 값을 `false`로 설정합니다. 이 구성 요소를 AWS제공 TensorFlow Lite 추론 구성 요소와 함께 사용하려면 종속성을 포함하여 다음 라이브러리를 설치하고 ML 구성 요소를 `ggc_user`실행하는와 같은 시스템 사용자가 사용할 수 있도록 합니다.
+ [Python](https://www.python.org/downloads/) 3.8 이상(사용 중인 Python 버전의 경우 `pip` 포함)
+ [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) v2.5.0
+ [NumPy](https://numpy.org/install/)
+ [OpenCV-Python](https://pypi.org/project/opencv-python/)
+ [AWS IoT Device SDK Python용 v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [AWS 공통 런타임(CRT) Python](https://github.com/awslabs/aws-crt-python)
+ [Picamera](https://picamera.readthedocs.io/en/release-1.13/)(Raspberry Pi 디바이스용)
+ [`awscam` 모듈](https://docs.aws.amazon.com/deeplens/latest/dg/deeplens-library-awscam-module.html)( AWS DeepLens 디바이스용)
+ libGL(Linux 디바이스용)
<a name="ml-config-useinstaller-default"></a>기본값: `true`

## 사용법
<a name="tensorflow-lite-component-usage"></a>

`UseInstaller` 구성 파라미터가 `true`로 설정된 이 구성 요소를 사용하여 디바이스에 TensorFlow Lite와 해당 종속성을 설치합니다. 이 구성 요소는 디바이스에 TensorFlow Lite에 필요한 OpenCV 및 NumPy 라이브러리를 포함하는 가상 환경을 설정합니다.

**참고**  <a name="ml-installer-component-usage-note"></a>
이 구성 요소의 설치 프로그램 스크립트에서도 디바이스에 가상 환경을 구성하고 설치된 기계 학습 프레임워크를 사용하는 데 필요한 추가 시스템 라이브러리의 최신 버전을 설치합니다. 그러면 디바이스의 기존 시스템 라이브러리가 업그레이드될 수 있습니다. 지원되는 각 운영 체제별로 이 구성 요소가 설치하는 라이브러리의 목록은 다음 표를 참조하세요. 이 설치 프로세스를 사용자 지정하려면 `UseInstaller` 구성 파라미터를 `false`로 설정하고 자체 설치 관리자 스크립트를 개발합니다.


| 플랫폼 | 디바이스 시스템에 설치된 라이브러리 | 가상 환경에 설치된 라이브러리 | 
| --- | --- | --- | 
| Armv7l | build-essential, cmake, ca-certificates, git | setuptools, wheel | 
| Amazon Linux 2 | mesa-libGL | 없음 | 
| Ubuntu | wget | 없음 | 

추론 구성 요소를 배포할 때 이 런타임 구성 요소는 먼저 디바이스에 이미 TensorFlow Lite 및 해당 종속성이 설치되어 있는지 확인합니다. 그렇지 않으면 런타임 구성 요소가 이를 대신 설치합니다.

## 로컬 로그 파일
<a name="tensorflow-lite-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/variant.TensorFlowLite.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\variant.TensorFlowLite.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/variant.TensorFlowLite.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\variant.TensorFlowLite.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="tensorflow-lite-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.5.15  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.14  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.13  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.12  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.11  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.10  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.9  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.8  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.0  |  초기 버전입니다.  | 