Я хочу запустить SSD Keras-TF
модель в TensorRT
.
Я загрузил источник SSD из https://github.com/mashyko/ssd_keras_ver2_1.git и связанных с ним файлов весов.
Я загрузил этот весфайлы и запустите его тестовый пример, он работает отлично.
Моя среда на хост-компьютере:
Keras 2.2.4
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
tensorflow 1.14.0
opencv-python 4.1.1.26
protobuf 3.10.0
Я преобразовал этот весовой файл в .pb
, используя следующий код.
Мой код:
from keras import backend as K
import tensorflow as tf
def freeze_session(session, keep_var_names=None, output_names=None, clear_devices=True):
from tensorflow.python.framework.graph_util import convert_variables_to_constants
graph = session.graph
with graph.as_default():
freeze_var_names = list(set(v.op.name for v in tf.global_variables()).difference(keep_var_names or []))
output_names = output_names or []
output_names += [v.op.name for v in tf.global_variables()]
# Graph -> GraphDef ProtoBuf
input_graph_def = graph.as_graph_def()
if clear_devices:
for node in input_graph_def.node:
node.device = ""
frozen_graph = tf.graph_util.remove_training_nodes(convert_variables_to_constants(session, input_graph_def,
output_names, freeze_var_names))
return frozen_graph
frozen_graph = freeze_session(K.get_session(),
output_names=[out.op.name for out in model.outputs])
Теперь я скопировал этот файл в папку TensorRT
samples (samplesUffSSD
) и преобразовал его в файл UFF
, используя образец файла конфигурациии следуйте инструкциям ниже. https://github.com/NVIDIA/TensorRT/tree/release/6.0/samples/opensource/sampleUffSSD
Пример приложения, предоставленного Nvidia TensorRT
, работает отлично. Когда я пытаюсь запустить его с моим .pb
файлом, он выдает следующую ошибку
Ошибка:
[libprotobuf FATAL /externals/protobuf/x86_64/10.0/include/google/protobuf/repeated_field.h:1408] CHECK failed: (index) < (current_size_):
Я очень плохо знаком с TensorRT
,Может кто-нибудь, пожалуйста, помогите мне с этой ошибкой.