- CaDDN代码调试-我的电脑
- 1、环境配置:
- 2、数据集准备
- 3、训练一个模型
- CaDDN代码调试-云环境
- 1、数据集打包上传
- 2、环境配置
- 3、错误信息
- 4、成功运行
- CaDDN代码调试之 docker环境的安装
CaDDN这一篇我给翻译了,链接地址
先说一下我电脑的配置:
-
HP暗影精灵5
-
双系统:win10+ubuntu1804(后边代码调试过程在ubuntu系统中进行的)
-
内存:8+16G
-
硬盘:512G SSD + 1TB 机械
-
显卡:RTX 2060 (6G)
-
配置cuda10.2的环境
之前安装过cuda10.1的,调试的过程一堆问题,然后就重装了10.2,结果还是一堆问题。安装过程的话,就推荐这篇博客吧。
-
使用conda创建一个caddn虚拟环境
我是推荐使用Anaconda来创建caddn虚拟环境的,因为需要python3.8的环境,直接使用系统环境后期可能会出很多问题。
conda create -n caddn python=3.8
-
下载CaDDN代码
使用GitHub Proxy 代理加速,下载会快很多。
git clone https://mirror.ghproxy.com/https://github.com/TRAILab/CaDDN.git
-
安装编译pcdet v0.3
首先需要安装一个库,如torch等。使用阿里云加速
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
接下来这一步可能会出错:
python setup.py develop
没有出问题的话,那就没事,如果出现了pcdet/ops/iou3d_nms/src/iou3d_cpu.cpp:12:18: fatal error: cuda.h: 这样的错误,可以参考这篇博客。
数据集的格式如下所示:
CaDDN ├── data │ ├── kitti │ │ │── ImageSets │ │ │── training │ │ │ ├──calib & velodyne & label_2 & image_2 & depth_2 │ │ │── testing │ │ │ ├──calib & velodyne & image_2 ├── pcdet ├── tools
可以先准备少一点的数据,比如300张图片。另外深度图需要下载 depth maps。如果没有梯子,可以去CSDN下载,我把这个深度数据上传了,,不过只有300张深度图,仅作科研学术交流,如有侵权,可联系我删除。
执行如下命令生成data infos信息:
python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml
这里如果出现Assertion问题,可以看一看是calib还是图像的问题,ImageSets里train.txt和val.txt和test.txt与数据集中的数据是一一对应的,数据集中可以多数据,但不能没有ImageSets里包含的数据。
错误信息如下图所示:
可以在看出是在kitti_dataset.py的118行get_calib出现了问题,因此找到此处代码,在assert前边加上一个print,这样再次运行,就可看出是少了那个文件了,在train.txt或者val.txt删除就ok了。
def get_calib(self, idx):
calib_file = self.root_split_path / 'calib' / ('%s.txt' % idx)
# print(calib_file)
assert calib_file.exists()
return calibration_kitti.Calibration(calib_file)
3、训练一个模型
首先需要下载预训练模型 DeepLabV3 model,将其放入checkpoints文件下,其文件结构如下:
CaDDN ├── checkpoints │ ├── deeplabv3_resnet101_coco-586e9e4e.pth ├── data ├── pcdet ├── tools
修改train.py
parser.add_argument('--cfg_file', type=str, default='./cfgs/kitti_models/CaDDN.yaml', help='specify the config for training')
parser.add_argument('--batch_size', type=int, default=4, required=False, help='batch size for training')
parser.add_argument('--epochs', type=int, default=10, required=False, help='number of epochs to train for')
parser.add_argument('--workers', type=int, default=8, help='number of workers for dataloader')
parser.add_argument('--extra_tag', type=str, default='default', help='extra tag for this experiment')
parser.add_argument('--ckpt', type=str, default=None, help='checkpoint to start from')
parser.add_argument('--pretrained_model', type=str, default='../checkpoints/deeplabv3_resnet101_coco-586e9e4e.pth', help='pretrained_model')
主要是修改配置文件路径,batch_size、epochs、预训练模型位置信息,如下图所示。
Terminal命令行中注意cd到tools目录下,开始训练:
python3.8 train.py
注意,一定要用python3.8,直接用python可能会出错。
然后显存不够,Out Of Memery。
此云环境有1块V100(4核32G),应该不会出现显存不足的问题。
1、数据集打包上传- 无法解压data目录下的文件
将其移动到share目录下,再进行解压。
cp 原文件地址 目标地址2、环境配置
与本地配置类似,不过云服务器中的cuda什么是安装好的,cuda是10.1版本,经测试,也可以跑CaDDN代码,所以下边没有cuda的安装步骤直接。
- 首先测试了一块8G显存的GPU,最后还是显存不足的问题
所以换了一块V100继续调试
原来用错了python,应该是运行python3.8 train.py
成功运行起来了,大功告成~~
训练这个真滴耗卡呀!
后期再来测试



