|
| 1 | +### tensorflow==2.3.0 |
| 2 | + |
| 3 | +### https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/6.0/GA_6.0.1.5/local_repos/nv-tensorrt-repo-ubuntu1804-cuda10.1-trt6.0.1.5-ga-20190913_1-1_amd64.deb |
| 4 | + |
| 5 | +# os="ubuntu1804" |
| 6 | +# tag="cuda10.1-trt6.0.1.5-ga-20190913" |
| 7 | +# sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb |
| 8 | +# sudo apt-key add /var/nv-tensorrt-repo-${tag}/7fa2af80.pub |
| 9 | + |
| 10 | +# sudo apt-get update |
| 11 | +# sudo apt-get install tensorrt |
| 12 | + |
| 13 | +# sudo apt-get install python3-libnvinfer-dev |
| 14 | +# python3-libnvinfer |
| 15 | +# sudo apt-get install uff-converter-tf |
| 16 | +# sudo apt-get install onnx-graphsurgeon |
| 17 | + |
| 18 | +import tensorflow as tf |
| 19 | +import numpy as np |
| 20 | +import time |
| 21 | + |
| 22 | +height = 128 |
| 23 | +width = 128 |
| 24 | + |
| 25 | +def input_fn(): |
| 26 | + input_shapes = [1, height, width, 3] |
| 27 | + yield [np.zeros(input_shapes).astype(np.float32)] |
| 28 | + |
| 29 | + |
| 30 | +params = tf.experimental.tensorrt.ConversionParams(precision_mode='FP32', maximum_cached_engines=1000) |
| 31 | +converter = tf.experimental.tensorrt.Converter(input_saved_model_dir='saved_model', conversion_params=params) |
| 32 | +converter.convert() |
| 33 | +converter.build(input_fn=input_fn) |
| 34 | +converter.save('tensorrt_saved_model_128x128_float32') |
| 35 | + |
| 36 | + |
| 37 | +params = tf.experimental.tensorrt.ConversionParams(precision_mode='FP16', maximum_cached_engines=1000) |
| 38 | +converter = tf.experimental.tensorrt.Converter(input_saved_model_dir='saved_model', conversion_params=params) |
| 39 | +converter.convert() |
| 40 | +converter.build(input_fn=input_fn) |
| 41 | +converter.save('tensorrt_saved_model_128x128_float16') |
| 42 | + |
| 43 | + |
| 44 | +model = tf.saved_model.load('tensorrt_saved_model_128x128_float32', tags=[tf.saved_model.SERVING]) |
| 45 | +infer = model.signatures[tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY] |
| 46 | +infer.inputs[0].shape |
| 47 | +x = np.random.uniform(size=(1, height, width, 3)).astype(np.float32) |
| 48 | + |
| 49 | +start = time.perf_counter() |
| 50 | +infer(tf.convert_to_tensor(x)) |
| 51 | +end = time.perf_counter() |
| 52 | +print('@@@@@@@@@@@@@@ First Inference') |
| 53 | +print('elapsed time:', end - start) |
| 54 | + |
| 55 | +start = time.perf_counter() |
| 56 | +infer(tf.convert_to_tensor(x)) |
| 57 | +end = time.perf_counter() |
| 58 | +print('@@@@@@@@@@@@@@ Second Inference') |
| 59 | +print('elapsed time:', end - start) |
0 commit comments