上个月,NVIDIA和我们共同合作顺利完成了第一届线上NANO黑客松比赛。
第一届NANO Hackathon落下帷幕:一场高性能边缘计算的奇妙之旅
本次NANO Hackathon活动主要向用户推广在JetsonNANO平台上利用TensorRT,TransferLearning Toolkit(TLT)这两个开发工具,在实际应用中解决深度学习推理和训练上的问题。本次活动以口罩检测为主题,学生利用TransferLearning Toolkit训练ssd_mobilenet_v2等目标检测模型,并把训练好的模型利用TensorRT部署在Jetson NANO平台上来对视频进行人脸口罩检测。以下是从活动的微信群,webex会议等渠道收集概括的学生提出的问题。主要帮助学生解决了环境部署,API调用,代码调优等方面产生的问题。
1
TensorRT哪里能找到比较好的教程?最好是中文的?
目前建议最好的教程就是官方的Development Guide,您可以参考:
https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html
目前没有中文版,只有英文版。如果有更多问题,可以访问NVIDIA TensorRT的论坛:
https://forums.developer.nvidia.com/c/ai-deep-learning/libraries-sdk/tensorrt/92
2
TensorRT目前在Python版本中支持的好吗?
目前TensorRT是能够很好的支持Python的,我们有SDK中有很多Python的例子。如果对于Python的结构细节,可以访问:
https://docs.nvidia.com/deeplearning/tensorrt/api/python_api/index.html
3
麻烦推荐一下比较好的TensorRT比较好的安装教程?
这里推荐您官方提供的安装教程,也是最全的。目前官方支持到最新的7.1.3版本,您可以访问下面的连接:
https://docs.nvidia.com/deeplearning/tensorrt/archives/index.html#trt_7.1
4
TensorRT的版本可以向下支持吗?
TensorRT大部分内容可以向下支持,不过会在一些部分做优化,导致有些功能在使用最新的方法后会有更好的性能提升
5
TensorRT支持Pytorch吗?
可以支持的,您可了解一下TensorRT优化ONNX格式的模型。您在SDK的sample里面找到。
6
TLT怎么安装?
您可以访问下面的网址:
https://docs.nvidia.com/metropolis/TLT/tlt-getting-started-guide/index.html
这里面会详细的介绍
7
TLT导出的模型可以直接转换成TensorRT格式吗?
TLT导出的模型经过tlt-converter工具转换后,可以直接利用TensorRT来执行推理任务。不过您需要在您部署的设备上利用tlt-converter转换。
8
TLT可以不通过Docker安装吗?
TLT目前只能通过DOCKER的方式安装
9
TLT可以再Geforce系列显卡上安装吗?
目前可以部署在GeForce系列显卡的机器上
10
TLT支持的目标检测的数据集的标注格式是什么?
目前支持的KITTI的数据标注格式,我们的Hackathon项目文件夹里有提供格式转换的工具
11
TLT数据集图片格式?
目前支持PNG,JPG和JPEG,我们在Hackathon项目的文件目录下也提供了格式转换的工具和图片检查的工具
12
TLT转换的模型再利用TensorRT做推理任务时总是输出不对?
这个错误可能由很多问题导致,建议通过以下方面进行检查:
A. 模型是否完整,有些时候模型在没传输完就被打断了
B. 输入维度是否正确
C. 输入维度的顺序是否正确
比如:tlt-converter里面-d参数后面的顺序是channel,height,width但是很多resize函数设置的都是width,height
D.检查一下输出的网络层是否正确
13
TLT预训练模型用examples里面的命令下载太慢怎么办?
您可以直接通过NGC官网下载,地址如下:
https://ngc.nvidia.com/catalog/models/nvidia:tlt_pretrained_object_detection
14
TLT导出的FP16 or INT8的模型可以直接在NANO上部署吗?
TLT导出的FP16模型可以直接部署在NANO上,但是INT8模型不能部署在NANO上。您可以是用Xavier来部署
15
在利用TLT训练的时候loss一直不下降怎么办?
可以增大训练数据集,也可以调节训练设置当中的学习率
16
如何设置TLT模型剪枝的-pth参数?
这个在样例代码中可以看到,通常,我们需要设置‘-pth’参数来平衡模型的精度与模型的大小(或者说速度)。更高的‘-pth’数值,会让模型更小(更快的推理速度),但是也会降低模型精度。在本次实验中,作者使用的是0.5,如果精度没问题,我们可以增加‘-pth’的数值,来进一步剪枝。反之,我们则需要减小‘-pth’的数值。