深度学习模型PyTorch训练并转ONNX与TensorRT部署
模型推理的时候,每一次的操作都是由GPU启动不同的的CUDA核心来完成的,大量的时间花在CUDA核心启动和读写操作上,造成了内存带宽的瓶颈和GPU资源浪费。TensorRT通过层间融合,横向融合把卷积偏置激活合并成一个结构,并且只占用一个CUDA核心,纵向融合把结构相同、权值不同的层合并成一个更宽的层,也是占用一个CUDA核心,因此整个模型结构更小更快。
下载地址;
TensorRT-7.2.3.4\include 中头文件 copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include;TensorRT-7.2.3.4\lib 中所有lib文件 copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64;TensorRT-7.2.3.4\lib 中所有dll文件copy 到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;TensorRT-7.2.3.4\samples\sampleMNIST\sample_mnist.sln;TensorRT-7.2.3.4\data\mnist 目录,执行python download_pgms.py;sample_mnist.exe --datadir=d:\path\to\TensorRT-7.0.0.11\data\mnist\;
fatal error C1083: 无法打开包括文件: “cuda_runtime.h”: No such file or dir步骤右键工程-》重新生成,执行失败。
错误原因:
没有包含cuda头文件
解决方法:
【项目右键】,点击【属性】,点击【配置属性】,点击【C/C++】,点击【常规】,编辑【附加包含目录】,根据CUDA的路径添加【D:\360Downloads\CUDA11.3\NVIDIA GPU Computing Toolkit\CUDA\v11.3\include】

LINK : fatal error LNK1181: 无法打开输入文件“cudnn.lib”步骤右键工程-》重新生成,执行失败。
错误原因:
没有包含lib库文件
解决方法:
【项目右键】,点击【属性】,点击【配置属性】,点击【VC++目录】,编辑【库目录】,根据CUDA的路径添加【D:\360Downloads\CUDA11.3\NVIDIA GPU Computing Toolkit\CUDA\v11.3\lib\x64】


sample_mnist.exe --datadir=d:\path\to\TensorRT-7.0.0.11\data\mnist\\ 失败
错误原因:
当前CUDA版本过高,本人的CUDA版本为11.3,需要11.1版本
解决办法:
参考资料
[Cannot find nvrtc64_111_0.dll after update to 1.13.1](https://github.com/nanopool/nanominer/issues/106)
路径 D:\360Downloads\CUDA11.3\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin 下的【nvrtc64_112_0.dll】重命名为【nvrtc64_111_0.dll】

urllib.error.HTTPError:HTTP Error 503:Service Unavailable执行 python download_pgms.py 失败。

错误原因:
下载数据集失败,数据集在国外的服务器,下载数据集需要翻墙
解决办法:
翻墙下载数据集资源,然后上传到国内的服务器,保证公网可以下载即可
注意:本人使用七牛云的kodo对象存储,10G免费空间,注册账号,身份认证审核方便,一般三个工作日完成审核(本人周三下午6点半左右提交申请,周四上午10点左右通过审核)
比如上传之后的url:
train-images-idx3-ubyte.gz
http://qu3tpn8vb.hn-bkt.clouddn.com/train-images-idx3-ubyte.gz
train-labels-idx1-ubyte.gz
http://qu3tpn8vb.hn-bkt.clouddn.com/train-labels-idx1-ubyte.gz
修改 download_pgms.py 文件中对应的url
