이전의 과정들로 생성했던 annotation data 들로 모델의 학습을 완료했을 것이며 검증 또한 완료하였을 것이다
해당 결과는 tensorboard로 확인할 수 있을 것이며
이번에는 이 학습된 모델을 활용할 수 있는 방안에 대하여 알아 볼 것이다
우선 saved_model.pb파일이나 frozen_graph.pb파일에 대하여 알아 두어야 하는데
간단히 말하면 pb파일은 우리가 학습한 모델을 사용하기 위하여 해당 가중치들의 값과 모델의 모양을 저장한 파일이라
생각하면 이해가 빠를듯 하다
활용방안으로는 해당 pb파일을 이용해 소형 컴퓨터인 jetson board에서 모델을 이용하여 detection을 진행 해 볼 것이다
jetson board역시 tensorflow 및 가상환경을 사용하여야 하기에 우선 환경설정부터 진행하겠다
필자의 경우 이전 서버에서 모델학습 진행에는 miniconda 를 이용하여 진행하였지만
2021-11-10 추후 어떤 지원이 될 지는 모르겠지만 현재는 jetson board는 conda를 지원하지 않아
virtualenv를 이용하여 가상환경 구성을 진행하였다
https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html
Installing TensorFlow For Jetson Platform :: NVIDIA Deep Learning Frameworks Documentation
Installing TensorFlow for Jetson Platform provides you with the access to the latest version of the framework on a lightweight, mobile platform without being restricted to TensorFlow Lite.
docs.nvidia.com
해당 링크를 참고하여 설치를 진행하였고 tensorflow 1 과 tensorflow 2환경을 모두 진행할 예정이기 때문에
따로 jetson board에다 가상환경을 구성해 주었다
Release Notes For Jetson Platform :: NVIDIA Deep Learning Frameworks Documentation
This document describes the key features, software enhancements and improvements, and known issues regarding Tensorflow 1.15.5 and 2.5.0 on the Jetson platform. Key Features and Enhancements This release includes the following key features and enhancements
docs.nvidia.com
해당 링크는 자신의 jetpack version에 맞는 tensorflow 버전을 확인할 수 있는 링크이며 이를 참고해서 virtualenv를 설치한다
virtualenv 설치 시에는 위의 링크에서 2.2를 먼저 진행한 이후에 필자의 경우 3.1 multiple tensorflow version을 설치하였으며
이는 자신에 맞게 찾아서 설치하면 될 듯 하다
$ sudo apt-get install python3-pip
$ sudo pip3 install -U pip testresources setuptools==49.6.0
$ sudo apt-get install virtualenv
$ python3 -m virtualenv -p python3 <chosen_venv_name>
$ source <chosen_venv_name>/bin/activate
$ pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker six mock requests gast h5py astor termcolor protobuf keras-applications keras-preprocessing wrapt google-pasta setuptools testresources
$ pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 tensorflow==1.15.4+nv20.12
이런식으로 설치를 진행하였다
위의 경우 tensorflow 1.15에 대한 설치이며 맨 마지막 명령어를 수정해 필자의 경우 tensorflow 2.3.1 버전 또한
설치해 두었다
이렇게 했으면 jetsonboard 역시 환경설정이 완료된 것이며
이제 해당 jetsonboard에서 동작시키기 위한 pb파일 생성에 대하여 알아보겠다
saved_model.pb은 tensorflow 2버전의 pb파일이며
frozen_graph.pb는 tensorflow 1버전의 pb파일이다
각각 사용법과 생성이 조금씩 다르기에 따로 알아보겠다
우선 frozen_graph.pb파일 생성에 대해 알아보자면
models_r1.13/research/object_detection 디렉토이 속의 export_inference_graph.py를 사용하여 생성한다
해당 디렉토리들은 이전 포스팅에서 맏은 models_r1.13 디렉토리를 사용하였다
export_inference_graph.py --help를 이용하면 파라미터들을 확인할 수 있는데
이중에서 input_type, pipeline_config_path, output_directory, trained_checkpoint_prefix 를 사용하겠다
input_type은 image_tensor
pipeline_config_path은 pipeline.config의 위치
output_directory 은 frozen_graph.pb가 생성될 위치
trained_checkpoint_prefix는 model.ckpt-100000까지만 주기 100000번째 ckpt들 사용한다는 의미이다
코드를 실행서켜 생성된 frozen_infernece_graph.pb graph.pbtxt 가 앞으로 사용될 것이다
saved_model.pb파일 같은경우
같은 맥락으로
models/reasearch/object_detection/python exporter_main_v2.py
로 생성할 것이며 --help옵션을 주어 파라미터를 살펴보면 tensorflow1과 거의 동일 한 것을 알 수있다
이부분에서도
input_type은 image_tensor
output_directiry - 출력 경로
pipline_config_path - pipeline 경로
trained_checkpoint_dir - 학습시켰던 checkpoint 경로 ckpt 가 저장된 파일까지만 주면 완성된다
tf2의 경우 해당 코드를 실행시키면 saved_model 디렉토리가 생성될 것인데
이 디렉토리 전체를 사용할 것이다
'tensorflow-machine learning' 카테고리의 다른 글
tensorflow 1.13 model traning & nohup (0) | 2021.11.18 |
---|---|
Tensorflow model training & mAP , Tensorboard (0) | 2021.11.10 |
machine learning pipline config 작성법 (0) | 2021.11.05 |
동영상 frame rate로 자르기 및 annotation (0) | 2021.10.28 |
[tensorflow 환경 설정] (0) | 2021.10.03 |