728x90
반응형
TensorRT는 추론 최적화 도구이다. 미리 만들어져있는 실행 그래프 파일 (.pb) 을 이용하여 추론을 수행한다.
https://github.com/tensorflow/models/tree/master/research/tensorrt
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
반응형
'AI Development > TensorRT' 카테고리의 다른 글
[TensorRT] TensorRT custom layer (0) | 2019.06.13 |
---|---|
[TensorRT] ImportError: No module named 'tensorrt.parsers'; 'tensorrt' is not a package (0) | 2019.06.10 |
[TensorRT] TensorRT support Python2.7, 3.5 (0) | 2019.04.12 |
[TensorRT] Docker Container를 이용한 TensorRT 설치 (0) | 2019.04.10 |
[TensorRT] TensorRT 5.0.2 Compatibility (0) | 2019.04.09 |