728x90
반응형

 

 

 

TensorRT는 추론 최적화 도구이다. 미리 만들어져있는 실행 그래프 파일 (.pb) 을 이용하여 추론을 수행한다. 

 

https://github.com/tensorflow/models/tree/master/research/tensorrt

 

tensorflow/models

Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub.

github.com

TensorFlow 에 내장되어있는 tensorrt 모델을 이용하여 간단한 예제를 실행 할 수 있다.

 

  • 미리 트레이닝된 TensorFlow SavedModel 을 Frozen Graph로 변환
  • 추론을 위해 Frozen Graph를 로드
  • native TensorFlow graph 추론 시간 측정 
  • TensorRT를 이용한 FP32, FP16, or INT8 precision modes 수행 

 

1. TensorFlow 설치

 

 

2. TensorRT 설치

 

 

3. Git Clone 및 파이썬 패스 설정

파이썬 패스는 models 을 다운 받은 경로를 설정한다. 예를 들면 /home/name/models 과 같이 설정 

git clone https://github.com/tensorflow/models.git
export PYTHONPATH="$PYTHONPATH:/path/to/models"

 

4. SavedModel 다운로드

SavedModel 은 models/research/tensorrt/ 폴더에 위치해야함 

wget http://download.tensorflow.org/models/official/resnetv2_imagenet_frozen_graph.pb

tensorrt 폴더에는 아래와 같이 구성되어있어야함

 

  • README.md 
  • image.jpg
  • labellist.json
  • tensorrt.py
  • resnetv2_imagenet_frozen_graph.pb

 

5. 예제 실행

--output_dir 은 마음대로 설정, 필자는 현재폴더인 ./ 로 설정 함 

python tensorrt.py --frozen_graph=resnetv2_imagenet_frozen_graph.pb \
  --image_file=image.jpg --native --fp32 --fp16 --int8 --output_dir=./

 

 

6. 결과 확인 

2019-04-12 02:43:03.503934: I tensorflow/contrib/tensorrt/kernels/trt_engine_op.cc:496] Building a new TensorRT engine for import/TRTEngineOp_0 with batch size 128
INFO:tensorflow:Starting timing.
INFO:tensorflow:Timing loop done!
Predictions:
Precision:  native ['seashore, coast, seacoast, sea-coast', 'promontory, headland, head, foreland', 'breakwater, groin, groyne, mole, bulwark, seawall, jetty', 'lakeside, lakeshore', 'grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus']
Precision:  FP32 ['seashore, coast, seacoast, sea-coast', 'promontory, headland, head, foreland', 'breakwater, groin, groyne, mole, bulwark, seawall, jetty', 'lakeside, lakeshore', 'sandbar, sand bar']
Precision:  FP16 ['seashore, coast, seacoast, sea-coast', 'promontory, headland, head, foreland', 'breakwater, groin, groyne, mole, bulwark, seawall, jetty', 'lakeside, lakeshore', 'sandbar, sand bar']
Precision:  INT8 ['seashore, coast, seacoast, sea-coast', 'promontory, headland, head, foreland', 'breakwater, groin, groyne, mole, bulwark, seawall, jetty', 'grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus', 'sandbar, sand bar']

 

 

7. log.txt 확인

vim log.txt 

 

결과적으로 코드 실행 후 다음과 같은 파일들을 얻게 되는 것이다. 

  • log.txt
  • tftrt_fp16_resnetv2_imagenet_frozen_graph.pb
  • tftrt_fp32_resnetv2_imagenet_frozen_graph.pb
  • tftrt_int8_calib_resnetv2_imagenet_frozen_graph.pb
  • tftrt_int8_resnetv2_imagenet_frozen_graph.pb
728x90
반응형