前情概要:尝试用Nvidia的tensorRT加速模型,生成tf的pb模型后,用uff的python工具包进一步转换模型时,出现错误。

 

实验环境:TensorRT 5.0+CUDA10.0的nvidia-docker镜像环境

实验目的:尝试将tensorflow的pb模型解析为uff格式

实验途径:依赖于uff工具包,import uff成功

问题描述:

使用uff的api from_tensorflow_frozen_model 对pb模型进行转换。

出错信息如下:

AttributeError: module 'uff' has no attribute 'from_tensorflow_frozen_model'

 

问题分析:

首先判断是uff可能安装的不正确,尝试重新安装uff包。根据官网教程输入指令:apt-get install uff-converter-tf,再次报错,报错信息如下:

E: Unable to locate package uff-converter-tf

 

继续解决这个问题,发现资料很少,仔细研读官网教程(https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html#installing-debian)发现Uff工具包已经打包在TRT的安装包里了,所以推断需要重新安装TRT。于是重新下载目标版本的TRT,注意匹配CUDA版本,我下载的是deb格式,使用指令本地解压:

dpkg -i nv-tensorrt-repo-ubuntu1x04-cudax.x-trt5.1.x.x-ga-yyyymmdd_1-1_amd64.deb

然后更新apt的源并安装TRT:

apt-get update && apt-get install tensorrt

安装python接口:

apt-get install python3-libnvinfer-dev

然后再进行uff包的安装就可以了!

apt-get install uff-converter-tf

这里的坑是我在之前直接apt-get install失败后,有些困惑,网上资料也很少。其实需要仔细的读现有的官方文档,uff的这个工具包已经包含在TRT里,当然也可以尝试找到镜像里TRT的安装路径,可能可以找到另一种解法。

 

预祝大家转换顺利!

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐