TensorRT: невозможно проанализировать модель тензорного потока обученных keras, принадлежащего UFF-файлу - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу запустить 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,Может кто-нибудь, пожалуйста, помогите мне с этой ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...