일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 임베디드 딥러닝
- 삼성역테
- dfs
- 코딩테스트
- 딥러닝
- MCU 딥러닝
- 다이나믹프로그래밍
- 포스코 교육
- TensorFlow Lite
- tflite
- 자료구조
- 삼성역량테스트
- sort
- 코테
- 영상처리
- dfs문제
- bfs문제
- 삼성코딩테스트
- 포스코 AI교육
- 삼성코테
- 그리디
- 포스코 ai 교육
- BFS
- 초소형머신러닝
- DP문제
- 코테 문제
- 알고리즘
- tinyml
- 컴퓨팅사고
- DP
- Today
- Total
코딩뚠뚠
[머신러닝 공부] Tiny ML -20 / TF Lite 본문
Chapter20. TF Lite
"
그래서 앞장까지 계속 썼던 TF Lite 는 뭘까
"
목차 :
- 마이크로컨트롤러용 TF Lite란?
- 모델을 인터프리터로 해석하는 이유는?
- Makefile?
앞장에서 했던 TFLite 프로젝트들
1. 마이크로컨트롤러용 TF Lite란?
Tensorflow Lite for Microcontroller ⊂ Tensorflow Lite ⊂ Tensorflow
텐서플로는 구글의 오픈소스 머신러닝 라이브러리이다.
- 장점 : 방대한 커뮤니티와 오픈소스, 배포와 관련된 많은 도구, 예제, 최적화 등 제공
- 단점 : 클라우드를 벗어난 플랫폼에 적합하지 않음. 스마트폰 플랫폼 등
▼
텐서플로 라이트는 저사양 모바일 플랫폼을 충족하기 위한 텐서플로의 하위 프로젝트로 시작된 라이브러리이다.
- 장점 : 수백 킬로바이트 안에 들어갈 수 있으며 어플리케이션에 쉽게 적용될 수 있다. 8비트 양자화 지원.
- 단점 : 모델 훈련기능은 지원하지 않으며, 추론을 실행하는 기능만을 지원한다.
▼
마이크로컨트롤러용 텐서플로 라이트는 임베디드 플랫폼에서 사용할 수 있는 라이브러리이다.
- 장점 : 20KB 이하의 용량으로 소화할 수 있는 바이너리.
- 단점 : 임베디드플랫폼에서 사용할때 기존 텐서플로 라이트는 여전히 용량 문제 존재.
마이크로컨트롤러용 텐서플로 라이트를 위해서 2018년 구글 에서는 아래 요구사항을 파악했다.
- 운영체제 종속성이 없어야 한다. (OS상관없이 동작)
- C/C++ 라이브러리에 대한 종속성이 없어야 한다. (간단한 함수조차 큰 용량 차지 / C math 라이브러리는 제외)
- 하드웨어가 부동소수점을 처리할 수 없다. (성능에 영향)
- 동적 메모리 할당이 없어야 한다. (heap이 조각나 충돌 발생 위험이 있다.)
- C+11이 필요하다. (범용성을 위해)
- 32bit 프로세스를 기준으로 한다. (최근 추세 따라 32bit 사용 - 2018기준)
1. 모델을 인터프리터로 해석하는 이유는?
모델을 미리 코드화 하지 않고 런타임에 모델을 인터프리터로 해석한다.
- 빌드 용이성 (외부 라이브러리에 의존X)
- 수정 용이성 (코드를 단계별로 검토하고 변경하는 것이 간단하다)
- 인라인 데이터 (추가 파일이 필요없어 로드나 파싱 단계가 필요없다)
- 코드 크기 (프로그램 세그먼트의 크기를 최소화할 수 있다)
이로인한 단점은 아래와 같다.
- 업그레이드 불편 (전체를 재 생성하고 로컬 변경사항을 다시 패치해야한다)
- 다중 모델 - 모델 교체 불편 (하나의 소스가 하나의 모델만 지원하므로 변경 시 모두 변경해야 한다)
위를 해결하기 위해 Project generation 방식을 사용한다.
이 프로세스는 모델을 빌드하는데 필요한 소스파일의 사본을 생성하고 IDE종속적인 프로젝트 파일을 선택 설정하여 쉽게 빌드할 수 있는 프로세스이다.
3. Makefile?
Make 빌드 시스템의 역사는 40년이 넘었고 많은 기능이 혼동을 유발한다.
따라서 구글은 Cmake 와 같은 유연한 도구를 사용하기로 결정했고 사용자는 Makefile 직접 수정이 아닌 IDE에서 프로젝트를 작성할 수 있게 됐다.
이후 내용 추가 예정
- 단위테스트 작성
- 하드웨어 플랫폼 지원
- IDE 지원
- 하드웨어 가속기 지원
- Micro에 포팅
(다음 내용이 더 재밌어보여서 먼저 공부하고 오겠다)
'공부 > ML&DL' 카테고리의 다른 글
[머신러닝 공부] Tiny ML -22 / 에너지 최적화 문제 (0) | 2022.05.08 |
---|---|
[머신러닝 공부] Tiny ML -21 / 최적화 문제 (0) | 2022.05.07 |
[머신러닝 공부] Tiny ML -19 / 제스처인식 어플리케이션 -3 (0) | 2022.04.17 |
[머신러닝 공부] Tiny ML -18 / 제스처인식 어플리케이션 -2 (0) | 2022.04.16 |
[머신러닝 공부] Tiny ML -17 / 제스처인식 어플리케이션 -1 (0) | 2022.04.02 |