Tensorflow 将先前为现有模型动态的占位符标注设为静态

Tensorflow 将先前为现有模型动态的占位符标注设为静态,tensorflow,machine-learning,neural-network,conv-neural-network,tensorrt,Tensorflow,Machine Learning,Neural Network,Conv Neural Network,Tensorrt,我训练了一个tensorflow模型用于目标检测,输入是一个占位符,尺寸为[1,None,None,3],因为我的训练图像有各种大小。然后,我将冻结的图(.pb文件)转换为tensorRT图,以便更快地进行推断,但tensorRT警告我,输入的张量具有未知的非批处理维度,因此节点将退回到TF。错误消息是: 2019-05-22 08:59:56.628216: W tensorflow/contrib/tensorrt/convert/convert_nodes.cc:3710] Validat

我训练了一个tensorflow模型用于目标检测,输入是一个占位符,尺寸为[1,None,None,3],因为我的训练图像有各种大小。然后,我将冻结的图(.pb文件)转换为tensorRT图,以便更快地进行推断,但tensorRT警告我,输入的张量具有未知的非批处理维度,因此节点将退回到TF。错误消息是:

2019-05-22 08:59:56.628216: W tensorflow/contrib/tensorrt/convert/convert_nodes.cc:3710] Validation failed for TensorRTInputPH_0 and input slot 0: Input tensor with shape [1,?,?,3] has an unknown non-batch dimension at dim 1
2019-05-22 08:59:56.628262: W tensorflow/contrib/tensorrt/convert/convert_graph.cc:1021] TensorRT node TRTEngineOp_0 added for segment 0 consisting of 160 nodes failed: Invalid argument: Validation failed for TensorRTInputPH_0 and input slot 0: Input tensor with shape [1,?,?,3] has an unknown non-batch dimension at dim 1. Fallback to TF...

我知道我可以在trt.create\u推断图中将is\u dynamic\u op设置为True,但这会增加运行时间。我想用这个模型来推断视频,其中所有帧的高度和宽度都相同。是否有一种方法可以将输入占位符尺寸固定为静态值,而无需重新训练模型?我的输入张量可以通过按名称获取张量来访问,我想您使用的是静态模式

TF-TRT的默认工作模式称为静态模式,只要参数
为\u dynamic\u op
设置为False,该模式就会激活。在静态模式下,要求完全定义模型中的所有形状(尺寸不能为无或-1)。当参数为_dynamic_op设置为True时,TF-TRT将在动态模式下运行。在动态模式下,TF-TRT API(在TF中创建推理图