前面总结了在本机上与谷歌colab上利用不同显卡对相同样本的检测结果,对比了二者推理耗时,最终发现借助tensorrt可以使推理时常缩减数倍,所以想着在更好的显卡上这个数值还能否再有所优化,因此本篇文章主要就如何在google colab上使用tensorrt做以说明。
利用Google Colab成功测试TensorRT指南一
利用Google Colab成功测试TensorRT指南二
在 google drive 新建笔记本并配置GPU
Colab的使用方法可以参见使用Google colab免费GPU训练模型攻略
创建好笔记本之后打开;
查看所分配得到的GPU资源
挂载云端硬盘
1 2
| from google.colab import drive drive.mount('/content/gdrive')
|
输入验证码后挂载成功。
切换工作目录
1 2 3
| import os project_path = '/content/gdrive/My Drive/Colab Notebooks/TensorRT Colab Test' os.chdir(project_path)
|
我的工作目录是谷歌硬盘下的Colab Notebooks下的TensorRT Colab Test文件夹
查看当前的CUDA版本
查看Ubuntu版本
查看Tensorflow版本
1 2
| import tensorflow as tf print(tf.__version__)
|
现在我要换掉cuda cudnn 以及tensorflow的版本,所以先要卸载掉就版本。
卸载当前CUDA版本
1 2 3 4
| !sudo apt-get --purge remove cuda nvidia* libnvidia-* !sudo dpkg -l | grep cuda- | awk '{print $2}' | xargs -n1 dpkg --purge !sudo apt-get remove cuda-* !sudo apt autoremove
|
安装CUDA 10.0
1 2 3 4 5 6 7
| !wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb !sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb !sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub !sudo apt-get update !wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb !sudo apt install -y ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb !sudo apt-get update
|
安装nvidia驱动
1
| !sudo apt-get -y install nvidia-driver-418
|
安装CUDNN
1 2 3 4
| !sudo apt-get install -y \ cuda-10-0 \ libcudnn7=7.6.2.24-1+cuda10.0 \ libcudnn7-dev=7.6.2.24-1+cuda10.0 --allow-change-held-packages
|
检查CUDA是否已经改变了版本
安装TensorRT
1 2 3
| !sudo dpkg -i "nv-tensorrt-repo-ubuntu1804-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb" !sudo apt-key add /var/nv-tensorrt-repo-cuda10.0-trt7.0.0.11-ga-20191216/7fa2af80.pub !sudo apt-get update
|
这里的nv-tensorrt-repo-ubuntu1804-cuda10.0-trt7.0.0.11-ga-20191216_1-1_amd64.deb是在官网根据自己系统的环境下载下来然后从本地上传到谷歌硬盘的工作目录下
安装依赖包
1 2 3 4 5
| !sudo apt-get install libnvinfer7=7.0.0-1+cuda10.0 libnvonnxparsers7=7.0.0-1+cuda10.0 libnvparsers7=7.0.0-1+cuda10.0 libnvinfer-plugin7=7.0.0-1+cuda10.0 libnvinfer-dev=7.0.0-1+cuda10.0 libnvonnxparsers-dev=7.0.0-1+cuda10.0 libnvparsers-dev=7.0.0-1+cuda10.0 libnvinfer-plugin-dev=7.0.0-1+cuda10.0 python-libnvinfer=7.0.0-1+cuda10.0 python3-libnvinfer=7.0.0-1+cuda10.0
!sudo apt-mark hold libnvinfer7 libnvonnxparsers7 libnvparsers7 libnvinfer-plugin7 libnvinfer-dev libnvonnxparsers-dev libnvparsers-dev libnvinfer-plugin-dev python-libnvinfer python3-libnvinfer
!sudo apt-get install tensorrt
|
验证是否安装成功
1
| !dpkg -l | grep TensorRT
|
开始测试,先看看samples/python/uff_ssd例子能不能运行
解压压缩包
1
| !tar zxvf TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz
|
这里的TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz也是在官网下载后直接上传到网盘的。
1
| !python uff_ssd/detect_objects.py
|
解决ModuleNotFoundError: No module named ‘pycuda’
解决ModuleNotFoundError: No module named ‘graphsurgeon’
1
| !pip install graphsurgeon-0.4.1-py2.py3-none-any.whl
|
解决ImportError: cannot import name ‘uff’
1
| !pip install uff-0.6.5-py2.py3-none-any.whl
|
解决ImportError: cannot import name ‘NodeDef’
1 2
| !pip uninstall tensorflow !pip install tensorflow-gpu==1.14.0
|
开始测试
1
| !python TensorRT-7.0.0.11/samples/python/uff_ssd/detect_objects.py TensorRT-7.0.0.11/samples/python/uff_ssd/images/image2.jpg
|
完整的笔记文档下载地址
tensorrt_colab_test.ipynb