Я пытался использовать trt.create_inference_graph, чтобы преобразовать мою переведенную Keras сохраненную модель Tensorflow из FP32 в FP16 и INT8, а затем сохранить ее в формате, который можно использовать для обслуживания TensorFlow.Код здесь - https://colab.research.google.com/drive/16zUmIx0_KxRHLN751RCEBuZRKhWx6BsJ
Однако при работе с моим тестовым клиентом я не вижу изменений во времени.
Я сравнивал разные модели с 32 ГБ NVIDIA V100 и моей картой 1070 GTX 8 ГБ вноутбук.Я попытался уменьшить и увеличить входную форму, чтобы проверить эффекты памяти.В целом, я думаю, что, кроме преимущества 32 ГБ памяти (не только для загрузки моделей, но и для обработки, скажем, кадров, не выходя из памяти), V100, похоже, не имеет скорости;Я особенно думал об удвоении скорости в режиме FP16.Не уверен, что преобразованная в Keras модель TF, или сложность модели, или дизайн имеют какое-то значение.
Вот подробности теста https://docs.google.com/spreadsheets/d/1Sl7K6sa96wub1OXcneMk1txthQfh63b0H5mwygyVQlE/edit?usp=sharing
Model 4 Keras converted TF sering
Model 6 TF Graph simple optimisation
Model 7 TF Graph simple optimisation + Weight Qunatization
Model 8 TF Graph simple optimisation + Weight + Model Qunatization
Model 9 Based on Model 4 frozen; NVIDIA Tensor RT Optimisation FP 32
Model 10 Based on Model 4 frozen; NVIDIA Tensor RT Optimisation FP 16
Model 11 Based on Model 4 frozen; NVIDIA Tensor RT Optimisation INT 8
No of Runs 1
Model NVIDIA GTX 1070 NVIDIA V100 32 GB
4 0.13 0.13
6 0.14 0.15
7 0.15 0.14
9 0.13 0.12
10 0.13 0.12
11 0.13 0.12
No of runs :10
4 1.15 0.81
6 1.34 1.16
7 1.15 1.27
9 1.23 0.82
10 1.22 0.83
11 1.22 0.85
FP32 - V100 -Нет оптимизации
('Label', 'person', ' at ', array([409, 167, 728, 603]), ' Score ', 0.968112)
('Label', 'person', ' at ', array([ 0, 426, 512, 785]), ' Score ', 0.8355837)
('Label', 'person', ' at ', array([ 723, 475, 1067, 791]), ' Score ', 0.7234411)
('Label', 'tie', ' at ', array([527, 335, 569, 505]), ' Score ', 0.52543193)
('Time for ', 10, ' is ', 0.7228488922119141)
FP 32 с оптимизацией на основе TensorFlow - TransformGraph
без весового или модельного квантования
('Time for ', 10, ' is ', 0.6342859268188477)
FP ??с оптимизацией на основе TensorFlow - + Weight Quantized- TransformGraph
После квантования веса;Размер модели составляет 39 МБ!(от ~ 149 МБ) Но время удваивается («Время для», 10, «есть», 1.201113224029541)
Квантование модели - не работает (по крайней мере, с обслуживанием TF)
ИспользованиеОптимизация NVIDIA TensorRT (ноутбук colab)
FP16 - v100
('Label', 'person', ' at ', array([409, 167, 728, 603]), ' Score ', 0.9681119)
('Label', 'person', ' at ', array([ 0, 426, 512, 785]), ' Score ', 0.83558357)
('Label', 'person', ' at ', array([ 723, 475, 1067, 791]), ' Score ', 0.7234408)
('Label', 'tie', ' at ', array([527, 335, 569, 505]), ' Score ', 0.52543193)
('Time for ', 10, ' is ', 0.8691568374633789)
INT 8
('Label', 'person', ' at ', array([409, 167, 728, 603]), ' Score ', 0.9681119)
('Label', 'person', ' at ', array([ 0, 426, 512, 785]), ' Score ', 0.83558357)
('Label', 'person', ' at ', array([ 723, 475, 1067, 791]), ' Score ', 0.7234408)
('Label', 'tie', ' at ', array([527, 335, 569, 505]), ' Score ', 0.52543193)
('Time for ', 10, ' is ', 0.8551359176635742)
Фрагмент оптимизации https://colab.research.google.com/drive/1u79vDN4MZuq6gYIOkPmWsbghjunbDq6m
Примечание: междупробеги есть небольшие различия