조금씩 꾸준히 완성을 향해

[TensorFlow.js] Keras 모델을 JavaScript로 내보내기 & tensorflow 버전 맞추기 본문

AI/Deep Learning

[TensorFlow.js] Keras 모델을 JavaScript로 내보내기 & tensorflow 버전 맞추기

all_sound 2023. 1. 9. 17:44

TensorFlow.js는 웹 브라우저와 Node.js에서 기계 학습 모델을 교육하고 배포하기 위한 JavaScript 라이브러리이다.

 

즉, python 환경에서 학습한 tensorflow keras 모델을 JavaScript로 내보내서 사용할 수 있게 만들어 준다. 

 

 

이미지 분류 프로젝트를 위해  직접 짠 CNN 모델을 tensorflow.js로 변환해 보려고 한다.

 

pip install tensorflowjs

먼저 tensorflowjs를 설치한 후 import 하는 과정에서 에러가 발생했다.

WARNING:root:TensorFlow Decision Forests 1.1.0 is compatible with the following TensorFlow Versions: ['2.11.0']. However, TensorFlow 2.9.2 was detected. This can cause issues with the TF API and symbols in the custom C++ ops. See the TF and TF-DF compatibility table at https://github.com/tensorflow/decision-forests/blob/main/documentation/known_issues.md#compatibility-table.

 

WARNING:root:Failure to load the training.so custom c++ tensorflow ops. This error is likely caused the version of TensorFlow and TensorFlow Decision Forests are not compatible. Full error:/usr/local/lib/python3.8/dist-packages/tensorflow_decision_forests/tensorflow/ops/training/training.so: undefined symbol: _ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceESt17basic_string_viewIcSt11char_traitsIcEEPSt6vectorINSt7__cxx1112basic_stringIcS5_SaIcEEESaISB_EE

 

 

TensorFlow Decision Forests 와 TensorFlow 버전이 맞지 않는다는 소리였다.

 

코랩에서 사용하던 tensorflow의 버전은 2.9.2였다.

 

아래는 반드시 맞춰 줘야할 TensorFlow Decision Forests 와 TensorFlow의 버전 매칭표이다.

 

 

pip install --upgrade tensorflow==2.11.0
pip install --upgrade tensorflow-estimator==2.11.0
pip install --upgrade tensorflow_decision_forests==1.1.0

이렇게 확실하게 버전을 업데이트 해주니 무사히 import가 되었다.

 

import tensorflowjs as tfjs
import tensorflow as tf

load_model = tf.keras.models.load_model('D:/olive_young/best_model.h5')
tfjs.converters.save_keras_model(load_model, '/content/drive/MyDrive/olive_young/tfjs_target_dir')

이 코드를 통해 모델을 불러와 tfjs 폴더를 생성하였다.

 

경로로 가보면 이렇게 모델과 weights 들이 저장된 것을 확인할 수 있다.

 

JavaScript에서 불러오는 과정은 다음 포스팅에...

 

 

참고로 공식 튜토리얼이 잘 작성돼 있어 참고하면 좋다.

https://www.tensorflow.org/js/tutorials/conversion/import_keras

 

Keras 모델을 TensorFlow.js로 가져오기

KerasCV, 온디바이스 ML 등을 사용한 확산 모델을 다루는 WiML 심포지엄의 세션을 확인하세요. 주문형 시청 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Keras 모델을 TensorFlow.js

www.tensorflow.org