之前英伟达发布了TLT(Transfer Learning Toolkit)
乘着这个机会跑了一下他,训练自己的模型。
接下来我会手把手教你如何搭建环境(一),如何制作Kitti数据集和改配置文件(二)
目前只支持ubuntu系统,所以博主建议安装双系统,后期为也会出一个双系统的教程,且电脑有英伟达的显卡
sudo apt install nvidia-driver-440
## 安装显卡的驱动比较简单,输入上面的命令就行,一定是最新版的440
测试有没有安装成功
nvidia-smi
如下图
接下来安装docker
下面指令一步一步来
# Install Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# Install nvidia-docker2
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
# Setting NO-SUDO
sudo usermod -aG docker $USER
sudo addgroup --system docker
sudo adduser $USER docker && newgrp docker
# Restart all Docker service
sudo systemctl daemon-reload && sudo service docker restart && sudo systemctl enable docker
# Test NVIDIA Container Running
sudo docker run --runtime=nvidia --rm nvidia/cuda:10.2-base nvidia-smi
出现以上的图片即为成功,如果不出现,解决方法如下:
1.重新启动电脑,然后在次输入最后一条命令,
2.如果试了第一种情况无解,那么重新安装一边,重复一次,在重新启动即可,博主也是这么解决的
然后我们需要申请ngc的账号,和英伟达通用(https://ngc.nvidia.com)
点击setup
点击get api key
然后点击右上角的generate api key(如下图)
接着我们需要安装tlt镜像,我这边会提供镜像,因为外网下载比较慢
链接:https://pan.baidu.com/s/1ALRt-gPFA8e0gY07bnH1Qw
提取码:kpt4
下载完我的镜像之后,进入文件夹,执行下方的命令
sudo docker load -i tlt-2-py2.tar
执行下面的命令检测检查 TLT 镜像
sudo docker images
出现下方图片的东西即为成功
然后我们执行 TLT 容器
sudo docker run --runtime=nvidia -it -v "/workspace/tlt-experiments":"/workspace/tlt-experiments" -p 8888:8888 nvcr.io/nvidia/tlt-streamanalytics:v2.0_dp_py2 /bin/bash
这一步会下载东西
•docker run :组合指令指示“执行”
•--runtime=nvidia:要使用GPU 执行,必须将runtime指向nvidia
•-it 组合参数设定为 i(互动)与 t(进入终端)
•-v 作为容器外部指向容器内部的路径
• 建议将”/path/to/dir/in/docker”部分直接设定为 “/workspace/tlt-experiments“,
• -p 指定将容器外部端口指向内部端口。本实例执行jupyter,内部需要将8888指出容器
• nvcr.io/nvidia/tlt-streamanalytics:v2.0_dp_py2 为容器完整路径名
• /bin/bash 为进入容器后的执行指令
执行完成之后
jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root
然后我们找到终端里面的token
我们在浏览器的状态栏输入127.0.0.1:8888
将刚才的token复制到
进入之后是没有tlt-experiments
我们在里面需要新建tlt-experiments
将examples文件夹复制到tlt-experiments,因为容器内部是不会保存的,容器一关就全部没了
容器内部与外部对应的路径如下图