자유게시판

아는 것이 힘이다 5탄, Keras vs TF-Lite Model (B-L475E-IOT01A Board)
2022. 10. 14 (금) 15:29 칩헤드 조회 62 좋아요 1 스크랩 0 댓글 0

이번 글에서는 STM32 Cube MX툴을 이용하여 .h5 모델 (Keras모델)과 .tflite 모델 (Tensorflow Lite 모델)간의 
추론 품질에 대한 
테스트 결과 및 의견을 포스팅 해보려고 합니다. .tflite 모델을 사용하는 방법은 제 Quest6 제출 문서에
자세히 최대한 기술하였습니다.
 딥러닝을 이용한 음향 분석 연구에 관심이 있으신분들은 참고 되시면 될거 같습니다. 

 

구글의 경우 알파고에 적용하였던 Tensorflow (.tf)라는 딥러닝 프레임웍을 공개후, 모바일폰과 같은 임베디드 환경에서
AI 모델을 실행할수 있도록 경량의 AI 모델을 추가로 만들었는데, 그게 Tensorflow Lite (.tflite) 라고 보시면 됩니다. 
이러한 .tflite는 우리가 모바일폰에 설치하는 모바일 앱들의 NDK 라이브러리 폴더를 보시면 .tflite 파일이 존재하는
앱들을 많이 볼수 있습니다. 아마도, 2030년 기준으로는  구글스토어에 업로드되는 앱들의 50%이상이 AI모델 기반 앱이
되지 않을까? 하는 예상
을 해봅니다. 

 

아래의 좌측의 스크린샷이 Float타입으로 생성한  .h5모델 (Keras모델)우측의 스크린샷이 Int 타입으로 생성한
.tflite모델(Tensorflow Lite모델)
의 모델 구조 및 IoT 개발보드에서 추론 화면입니다. 

 

가. 스크린샷:

아래는 STM32. Cube MX 툴을 이용하여 각각의 AI 모델 (예: Keras .h5 모델, Tensorflow Lite .tflite 모델)을 C소코드로 변환후의 네트웍 그래프에 대한 정보입니다. 

   [AI 모델별 그래프 구조 비교 : .h5 vs .tflite 모델]

 

 

아래의 스크린샷은  USB 케이블을 이용하여 COM9 (UART)포트를 enable시킨후, ST IOT 개발보드에서 C코드로 변환한 각각의 AI모델들을 실행시 콘솔 화면에 출력되는 레이어의 입출력 피쳐 정보입니다.  

   [ST IOT 개발보드에서 AI 모델 실행시 입출력 피쳐 정보 비교 : .h5 vs .tflite 모델]

 

아래의 스크린샷은  ST IOT 개발보드에서 C코드로 변환한 각각의 AI모델들을 실행시 음향 데이터의 (예: park.wav) 인식률을 보여줍니다. 

   [ST IOT 개발보드에서 AI 모델 실행시 추론 결과 비교 : .h5 vs .tflite 모델]

 

 

나.  시사점 및 제 소견 :

1. Tensorflow Lite의 AI모델의 크기가 레이어별 사이즈를 보면 Keras 대비 1/4으로 경량화되고 있습니다.  그만큼 RAM/ROM 용량이 적은 임베디드 디바이스에서 .tflite모델이 유용할거 같구요. 추후 DQNN 및 아래의 논문들의 Approach들을 좀더 시도해보려고 합니다. 

 

2. Tensorflow Lite의 모델 사이즈는 1/4으로 줄었으나, 하이퍼 파라메타의 수가 7,703개로 Keras모델과 동일하게 유지하고 있습니다. 이런 이유 덕분인지는 정확하지 않으나 IOT 개발보드에서 추론 수행시에 Accuracy가 나쁘지 않습니다. 테스트에 사용할 음향 데이타(.wav)에 따라 결과가 소폭 달라질수도 있겠으나, 일단 제가 가지고 있는 음향 데이타로는 Tensorflow Lite의 추론 품질이 15%~30%더 우수하게 나오고 있습니다.  이건 약간 쾌박이지 싶습니다. ^^

 

3. ARM MCU기반의 ST IOT 개발보드에서 잔통적 코딩을 통한 프로그램보다 더 우수한 accuracy의  모델 추론 결과를 보이려면, 향후의 ST IOT 개발보드들이 NPU를 탑재하여 현재의 MCU가 아닌 딥러닝 전용 NPU 칩으로 AI 모델을 추론을 하고 (학습 모델이 초거대 AI모델까지는 아니더라도), 현재보다 더 많은 데이타들을 학습 할수 있는 방향으로 차세대  MCU 보드의 설계 및 PCB  작업이 시도 되어야 할지 않을까? 생각을 해보게 되었습니다. 

 

이상 30원짜리  짧은 정보 공유 글이었습니다. :) 

이상. 

로그인 후
참가 상태를 확인할 수 있습니다.