由于项目需要,搭建一个口罩检测的模型用输出为Tensort RT格式,部署在deepstream上进行视频流分析。所以学习应用了一下NVIDIA TLT。
NVIDIA TLT是英伟达推出的迁移学习工具包,提供常见的预训练模型,训练模型结果可方便部署在Tensor RT、Deepstream上。
文档地址TLT
前期按步骤安装工具包即可:
拉取镜像
1 2 |
docker pull nvcr.io/nvidia/tlt-streamanalytics:v3.0-py3 |
安装nvidia-tlt
1 2 3 4 5 |
pip3 install nvidia-pyindex pip3 install nvidia-tlt pip3 install --upgrade nvidia-tlt tlt --help |
获取示例,示例中包含各种配置文件
1 2 3 4 |
wget --content-disposition https://api.ngc.nvidia.com/v2/resources/nvidia/tlt_cv_samples/versions/v1.1.0/zip -O tlt_cv_samples_v1.1.0.zip --2021-06-24 11:27:10-- https://api.ngc.nvidia.com/v2/resources/nvidia/tlt_cv_samples/versions/v1.1.0/zip unzip -u tlt_cv_samples_v1.1.0.zip -d ./tlt_cv_samples_v1.1.0 && rm -rf tlt_cv_samples_v1.1.0.zip && cd ./tlt_cv_samples_v1.1.0 |
安装NVIDIA Container Toolkit,在下面连接中根据对应系统安装
1 2 |
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html |
补充:如果已经有docker就不用装docker-ce,直接装nvidia-docker2,拉取nvidia/cuda:11.0-base
配置ngc,ngc是英伟达的云平台,包含各种预训练模型,可直接用命令拉取
1 2 3 4 5 |
# 安装ngc https://ngc.nvidia.com/setup/installers/cli # 配置ngc https://ngc.nvidia.com/setup/api-key |
启动tlt
1 2 3 4 5 6 7 8 |
docker run --runtime=nvidia -it nvcr.io/nvidia/tlt-streamanalytics:v2.0_py3 /bin/bash (https://ngc.nvidia.com/catalog/containers/nvidia:tlt-streamanalytics) # 建立实际目录与镜像目录的软连接 docker run --runtime=nvidia -it -v "/home/xxx/mask":"/workspace" -p 8889:8889 nvcr.io/nvidia/tlt-streamanalytics:v2.0_py3 /bin/bash # 补充:如果终端工具断开,可使用如下命令重新进入 docker exec -it 容器id /bin/bash 进入workspace) |
docker内的jupyter需要配置
1 2 3 4 5 6 7 8 9 10 11 |
# 可参考https://blog.csdn.net/cc1949/article/details/79095494 c.NotebookApp.allow_remote_access = True c.NotebookApp.allow_root = True # c.NotebookApp.notebook_dir = '/home/xxx/mask' c.NotebookApp.ip='*' c.NotebookApp.password = u'xxx' # 根据实际配置 c.NotebookApp.token = 'xxx' # 根据实际配置 c.NotebookApp.open_browser = False c.NotebookApp.port =8889 nohup jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root & |
配置环境变量
1 2 3 |
# 在当前workspace下 %env USER_EXPERIMENT_DIR=../tlt_cv_samples_v1.1.0/detectnet_v2 |
至此已经可以愉快的使用jupyter进行模型搭建了。
补充:TLT已经更名为TAO