ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Tensorflow.lite / Tensorflow.js / CoreML
    (ML&DL) 프로젝트/머신러닝 App 탑재 2022. 3. 23. 13:40

    차이점 비교

      Tensorflow.lite Tensorflow.js  CoreML
    특징 1. iOS, Android 네이티브 언어와 호환



    2. 모델 구현 & 학습코드는 존재X (앱 탑재가 목적이므로) -> 미리 학습시킨 모델을 변환하여 앱 내에서 추론만 실행함
    1. 자바스크립트 언어와 호환
    -> 스크립트 언어를 사용하는 웹 프론트엔드, 하이브리드 앱 프레임워크에 탑재 가능

    2. 모델 layer를 직접 구현 가능 (tenserflow와 문법 유사) & 모델 학습도 가능 
    - 웹 경우에는 학습시킬 서버가 있으므로..
     
    핵심 사전 학습된 모델을 TFLite포맷으로 변환
    -> 추론 API활용  (Interpreter)
    사전학습된 keras모델 (.h)을 변환
    -> 모델 로드 (tf.loadLayersModel )
    -> 추론 코드 호출 (model.predict)
     
    차이점 어플에서 입력되는 데이터 전처리
    & 추론 결과 전처리를 네이티브 언어 혹은 API를 통해 처리 가능
    어플에서 입력되는 데이터 전처리
    & 추론 결과 전처리를 tensorflow코드로 구현 가능
     

     

     

    1. TensorFlow Lite
    : TensorFlow 모델을 휴대폰, embedded 나 IOT 기기에서 구동하기 위한 ML 툴

     

    < workflow >

    1. 모델 선택
      • TF Lite에서 구동할 TensorFlow 모델을 사전 학습한 모델을 선택하거나 직접 코드를 작성하고 학습을 시킨다.
      • TensorFlow에서는 통상 pb 파일을 사용하는데, 이 pb 파일 형태의 모델을 만드는 단계이다.
    2. TFLite 모델로 변환
      • TensorFlow용으로 작성한 pb 모델 파일을 TFLite 포맷은 tflite 파일로 변환(convert)한다.
      • 몇가지 변환툴이 지원되니 상황에 맞게 선택할 수 있다.
    3. 배포(deploy)
      • tflite 모델 파일을 실제 구동할 디바이스에서 inference 수행을 배포한다.
      • Edge 단 배포는 Java, Swift, Objective-C, C++, Python과 같이 다양한 언어로 제공되는 API 세트가 있다.
    4. 모델 최적화
      • tflite 모델 생성 완료 후, 모델 파일 최적화를 수행할 수 있다. 이 과정을 통해서 모델 사이즈를 더 작게 만들어서 inference 시간을 절약할 수 있다.
      • 모델 사이즈를 줄이는 과정은 정확도를 희생시키는 이슈가 발생한다. 정확도를 지켜내면서 모델 사이즈를 줄이는 것이 목표가 된다

    참고1 https://devinlife.com/tensorflow%20lite/intro-tflite/

    참고2  https://pythonkim.tistory.com/131?category=703510  (안드로이드) 

    참고3 https://www.tensorflow.org/lite/guide?hl=ko                (개발flow 공식 가이드라인)

    참고4 https://www.tensorflow.org/lite/api_docs?hl=ko           (API 공식 도큐멘트)

     

     


     

    2. TensorFlow js

    javaScript언어를 위한 tensorflow

    ※ 어플 내에서는 학습이 불가하므로 단독 keras모델로 사전학습 -> 모델 변환 -> 추론 코드 호출

     

    Keras 모델의 경우 tensorflow.js 모듈에는 JSON 형식을 직접 출력하는 Python TF에서 호출 가능한 API가 포함되어 있습니다.

    예:

    # in Python code where the model is created and trained
    import tensorflowjs as tfjs
    …
    def train(…):
    model = keras.models.Sequential() # create a layered keras model
    …
    model.compile(…)
    model.fit(…) # train model
    tfjs.converters.save_keras_model(model, my_tfjsmodel_path)
    
    // in JavaScript code inferring the converted model
    const model = await tf.loadGraphModel(‘myTfjsmodelPath/model.json’);
    const model = await tf.loadLayersModel(‘myTfjsmodelPath/model.json’);
    
    const prediction = model.predict(inputData);

     

    참고1 https://www.tensorflow.org/js/guide  (개발flow 공식 가이드라인)

    참고2 https://ichi.pro/ko/seobeoliseu-peullaespom-eseo-tensorflow-jsleul-silhaenghaneun-bangbeob-224162562388919

    참고3 https://www.youtube.com/watch?v=a9tD69fEX-U  --> 따라하기에 제일 좋은듯

     

     

     

     

     

     

     

    Q.  tensorflow.js가 사용하기에 비교적 용이해 보임

    -> 네이티브 앱에 머신러닝 기능을 넣고싶으면,

    머신러닝 적용되는 부분(화면)만 웹뷰로 작성해서 

    웹앱을 심으면 안될지...?

    -> 그럼 사용자가 입력한 데이터 (추론에 사용될 데이터)는 어떻게 받아올지

     

    z

     

    '(ML&DL) 프로젝트 > 머신러닝 App 탑재' 카테고리의 다른 글

    추천시스템 알고리즘 선정  (0) 2022.06.19
    tensorflow.js 관련 서적  (0) 2022.04.03
    추천시스템 예제코드  (0) 2022.03.22

    댓글

Designed by Tistory.