Я работаю над проблемой обнаружения объектов, когда я использовал darknet для получения обученной модели (файлы .cfg и .weights). Чтобы преобразовать его в tenorRT, мне сначала пришлось преобразовать его в тензорный поток, используя этот репо , который генерирует следующие файлы:
- контрольная точка
- yolo-obj.ckpt.data-00000-of-00001
- yolo-obj.ckpt.index
- yolo-obj.ckpt.meta
- yolo-obj.pb
затем я использовал следующий код, чтобы преобразовать его в tenorRT
from tensorflow.python.compiler.tensorrt
import trt_convert as trt
import tensorflow as tf
with tf.Session() as sess:
# convert into frozen graph
saver = tf.train.import_meta_graph('data/yolo-obj.ckpt.meta')
saver.restore(sess, 'data/yolo-obj.ckpt')
output_nodes = ["save/restore_all"]
frozen_graph = tf.graph_util.convert_variables_to_constants(
sess,
tf.get_default_graph().as_graph_def(),
output_node_names=output_nodes)
# convert into trt
converter = trt.TrtGraphConverter(
input_graph_def=frozen_graph,
nodes_blacklist=output_nodes)
trt_graph = converter.convert()
output_node = tf.import_graph_def(
trt_graph,
return_elements=output_nodes)
sess.run(output_node)
, но я получаю ошибку:
ValueError: вход 0 для узла save / Assign был передан float от yolov3/ convolutional1 / BatchNorm / beta: 0 несовместимо с ожидаемым float_ref.