일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이비즈니스과
- 중3
- 웹프로그래밍과
- 일상
- 웹개발
- 풀스택
- TensorFlow
- 학생
- 디미고
- 머신러닝
- graphql
- 디미고특별전형
- 대나무숲
- 우분투
- 등교개학
- 특별전형
- 시스템해킹
- 코로나19
- coursera
- Flutter
- 플러터
- 인공지능
- 딥러닝
- 워게임
- 해킹방어과
- WebHacking
- pwnable.kr
- apollo
- 디미고입학
- 디지털컨텐츠과
- Today
- Total
꿈이 너무 많은 한 대학생의 공간
4. Tensorflow Lite 인터프리터 초기화 본문
org.tensorflow.lite.Interpreter 는 Tensorflow Lite 가 당신의 모바일 앱에서 작동할 수 있게 허가하는 클래스입니다. 우리는 Interpeter 개체를 우리의 모델과 함께 초기화할 것입니다.
1. DigitClassifier.kt 파일을 여세요. Tensorflow Lite 코드를 추가할 것입니다.
2. 먼저, DigitClassifier class를 추가하세요.
class DigitClassifier(private val context: Context) {
private var interpreter: Interpreter? = null
...
}
3. 이 때 안드로이드 스튜디오는 Unresolved reference: Interpreter 라는 에러를 띄울 것입니다. 그 에러를 수정하기 위해 org.tensorflow.lite.Interpreter 를 불러와 이 에러를 해결해 봅시다.
4. 그 후, 다음과 같은 코드를 찾아보세요.
private fun initializeInterpreter() {
...
}
5. 그 후 assets 폴더에 있는 mnist.tflite 모델을 사용하는 Tensorflow Lite Interpreter 를 초기화하기 위해 다음과 같은 코드를 작성해 봅시다.
// assets 폴더로부터 Tensorflow Lite 모델을 불러오기
val assetManager = context.assets
val model = loadModelFile(assetManager, "mnist.tflite")
Tensorflow Lite는 모델의 숫자인식 처리를 가속시켜주는 GPU, DPS, 그리고 Neural Networks API 같은 다양한 종류의 하드웨어 가속자를 사용합니다. 문서를 보면 어떻게 배우고 사용하는지 알게 될 것입니다.
6. 모델이 인식할 숫자를 읽어오는 과정을 추가하기 위해 다음과 같은 코드를 작성하세요.
// 모델 파일로부터 입력할 모양을 읽기
val inputShape = interpreter.getInputTensor(0).shape()
inputImageWidth = inputShape[1]
inputImageHeight = inputShape[2]
modelInputSie = FLOAT_TYPE_SIZE * inputImageWidth * inputImageHeight * PIXEL_SIZE
// 인터프리트 초기화
this.interpreter = interpreter
- modelINputSize는 우리가 Tensorflow Lite 모델을 저장하기 위해 얼마나 많은 메모리를 할당해야 하는지는 나타냅니다.
- FLOAT_TYPE_SIZE 는 우리가 입력값으로 필요할 Byte 단위로 나타냅니다.
- PIXEL_SIZE 는 그 각각의 픽셀이 얼마나 많은 컬러 채널을 가지고 있는지를 나타냅니다. 우리의 입력값으로 쓰일 이미지는 단색화된 이미지이므로, 우리는 그저 1가지의 컬러 채널을 가지고 있는 겁니다.
7. Tensorflow Lite 인터프리터 초기화를 끝낸 후에는, 우리는 리소스들을 사용하기 위해 활성화시켜야합니다.
이 샘플에서는, 인터프리터 라이프사이클을 MainActivity 라이프사이클과 동기화시켜야합니다. 그리고 앱이 종료되었을 때 인터프리터를 종료시켜야 합니다. DigitClassifier#close() 메소드를 찾아봅시다.
그리고 다음과 같은 코드를 추가합니다.
interpreter?.close()
본 강의는 구글의 Codelab 강의 중 "Build a handwritten digit classifier app with Tensorflow Lite" 강의를
번역할 것이며, 제가 직접 번역하였기에 오역과 의역이 있음을 알립니다.
'튜토리얼 번역 > 손글씨 숫자 분류기 만들기' 카테고리의 다른 글
6. 배포 및 테스트 (0) | 2020.04.22 |
---|---|
5. Tensorflow Lite 로 숫자 인식하기 (0) | 2020.04.22 |
3. 안드로이드 앱에 Tensorflow Lite 추가하기 (0) | 2020.04.22 |
2-1. 머신러닝 모델 학습시키기 (0) | 2020.04.21 |
2. 머신러닝 모델 학습하기 (0) | 2020.04.21 |