ONNX-TensorRT安装教程

找了很多的教程,针对这些教程和碰到的问题,整理了一下。

1.  主教程(***):https://zhuanlan.zhihu.com/p/380950900

按照这个主教程一步一步的走,其中没有说gcc 8.2.0的安装教程,推荐一个:https://blog.csdn.net/fpcc/article/details/99698783

注:我使用的是anaconda的虚拟环境,创建的python3.7,所以其中的 pip install pycuda 操作 和 python setup.py install 操作都是在 conda activate tensorrt 之后进行的。如果你没有用anaconda虚拟环境,直接用原生的python环境也没有问题,但是总之要有一个python环境。

2. 总结一下我碰到的问题:

2.1 版本问题,最终成功的版本:

cuda-10.2 + cudnn-7.6.5 + TensorRT-7.0.0.11 + protobuf-3.8.0 + gcc-8.2.0

显卡版本:RTX 2080 Ti

尝试过:cuda-10.1 + cudnn-7.6.3 + TensorRT-6.0.1.5 + protobuf-3.8.0 + gcc-8.2.0失败了。

尝试过:在 RTX 1080上想尝试一下cuda-10.0,但是支持不了gcc-8.2.0,所以直接拉胯。

如果你成功了,并且版本跟我的不一样,希望在评论区写出来,为其他人提供更多的选择,毕竟版本问题真是令人头秃的问题,十分感谢。

2.2 路径问题:

主教程的作者是使用的 "/path/to" 泛指安装路径,记得修改为自己的路径。尤其是下面这个地方,因为没注意,搞了好半天,大家要注意点。

ONNX-TensorRT安装教程_第1张图片

 比如改成:

ONNX-TensorRT安装教程_第2张图片

2.3  pip setup.py install 报错:NvOnnxParser.h:213: Error: Syntax error in input(1).

解决方案如下:

参考教程:https://blog.csdn.net/weixin_39558227/article/details/104780434

简单说:找到onnx-tensorrt文件夹下的NvOnnxParser.h文件,在顶部加一行:#define TENSORRTAPI

如下图:

 2.4 protobuf 如果是源码安装的话,在运行 “./autogen.sh” 时可能会报错:Command not found,解决方案如下:

原因可能是autogen.sh没有执行权限,执行:chmod a+x autogen.sh

2.5 在运行autogen.sh时,报错:./autogen.sh: 4: ./autogen.sh: autoreconf: not found

解决方案如下:

原因:没有安装automake工具,安装方式:apt-get install autoconf automake libtool

2.6 windows文件上传到Linux上引发的文件格式问题

因为windows上是docs格式,Linux上是unix格式,你可以查看一下你的文件格式,很有可能是docs的。

如果你的git操作,比如下面这个git操作:

git clone --recursive https://github.com/onnx/onnx-tensorrt.git

是先下载到windows上,然后又传到Linux上的话,你的文件格式可能会有问题,你需要对文件执行操作:find . -type f -print0 | xargs -0 dos2unix,比如你从windows上上传了protobuf文件夹到Linux上,需要执行操作:

cd protobuf
find . -type f -print0 | xargs -0 dos2unix

dos2unix 是需要安装的,安装指令:sudo apt-get install dos2unix

2.7  git操作引发的版本问题

你会发现,我们需要指定版本的protobuf和onnx-tensorrt,但是如果你直接执行下面的指令,下载的版本应该是最新版的,所以我们不能直接git clone,需要加参数来指定版本。

git clone https://github.com/protocolbuffers/protobuf.git
git clone --recursive https://github.com/onnx/onnx-tensorrt.git

指定版本的推荐教程:https://chinese.freecodecamp.org/news/git-clone-branch-how-to-clone-a-specific-branch/

简单来说,举个例子:下载onnx-tensorrt 7.0

git clone -b 7.0 --single-branch --recursive https://github.com/onnx/onnx-tensorrt.git

-b :分支参数,可以通过下面的方式确定:

ONNX-TensorRT安装教程_第3张图片

附加:、

.bashrc文件,对于tensorrt的环境配置如下,这样可以避免最后面出现冒号。

export LD_LIBRARY_PATH=/usr/local/TensorRT-7.0.0.11/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export LIBRARY_PATH=/usr/local/TensorRT-7.0.0.11/lib${LIBRARY_PATH:+:${LIBRARY_PATH}}

你可能感兴趣的:(环境配置,TensorRT,onnx-tensorrt)