我发现我们可以从几个方面优化Tensorflow模型。如果我搞错了,请告诉我。
1-使用TF-TRT,此API开发人员由tensorflow开发,并将TensoRT与Tensorflow集成,此API称为:
从tensorflow.python.compiler.tensorrt导入trt_convert作为trt
该API可以应用于任何Tensorflow模型(新版本和旧版本模型),而不存在任何转换错误,因为如果该API不支持任何新层,则不要考虑TensorRT引擎的这些层,这些层仍然适用于tensorflow引擎,并在Tensorflow上运行。对吗?
2-使用TensorRT,此API由NVIDA开发,独立于Tenorflow库(未集成到Tensorflow),此API称为:
进口张量作为trt
如果我们想要使用这个api,首先,我们必须使用UFF转换器将tensorflow图转换为UFF,然后将UFF图解析为这个API。在这种情况下,如果Tensorflow图有不受支持的层,我们必须为这些层使用插件或自定义代码,对吗?
我不知道,当我们使用Tensorflow模型时,为什么我们使用UFF转换器然后是TensorRT,我们可以直接使用TRT,对吗?如果是,您是否测试了这两种方法的Tensorflow优化模型以获得相同的性能?这种UFF转换器的优点是什么?
我对上述两宗个案有疑问:
4-我用两种情况转换ssd_mobilenet_v2,在第一种情况下,我在速度上取得了轻微的进步,而在第二种情况下,我实现了更多的改进,为什么呢?我的观点是,在第1种情况下,API只考虑转换精度(FP32到FP16)并将可能的层合并在一起,但是在第2种情况下,图是由UFF清理的,比如删除任何冗余节点,比如断言和标识,然后转换成张量图,对吗?
5-当我们转换像.ckpt和.meta这样经过训练的模型文件时.对于冻结推理图(.pb file),这些层不会从图中移除?只有丢失状态和优化器状态..。被移除了?
发布于 2020-01-26 03:46:37
https://stackoverflow.com/questions/59785769
复制相似问题