今天给大家讲解一下如何成功调试DGCNN的代码,之前发的博客是关于PointNet的代码调试,它们两个的网络非常类似,只不过DGCNN结合了局部的特征信息,关系到了点领域之间的关系,但是PointNet只是逐点提取了全局特征,所以分割和分类效果没DGCNN好。
网上源码的网址为:https://github.com/WangYueFt/dgcnn
一、首先对于电脑的配置的话,因为我目前用的是笔记本电脑,所以使用的是Tensorflow-Gpu1.14版本,cuda为10.1,编译器的话最好用Pycharm,因为VSCODE在读取数据集文件的时候总报错。
二、因为,之前的文章有介绍数据集的下载,所以在这里就不多说了,但是这里需要提醒的是需要把数据集放在我们打开Pycharm的文件夹中,防止它利用相对路径,因为我代码没有看太仔细。
三、对于分类的训练来讲,因为它源码中有一个data的路径,这里我们最好在文件夹中新建立一个data的文件夹,然后将modelnet40数据集放进去。
train.py中前面的参数修改中,只需要修改下Epoch和batch_size,后者的话看自己显卡内存,笔记本的话最好在8以下,不然可能会报错。Epoch的话可以慢慢提升。
这两个文档的读取如果报错的话就改为绝对路径。
我只跑了10个Epoch,所以比论文中的结果小很多,如果显卡好的话,可以多提升点Epoch。
运行评价的py文件,可以得到一个预测的标签文本,可以进一步观察准确率。
四、对于部分分割和语义分割任务的话,与分类类似,如果报错就修改下数据集地址,原作者给了一个175个Epoch训练得到的权重,可以直接拿来用做部分分割测试,因为本人的电脑配置没有那么高,所以训练的model没有那么好,原作者训练的模型测试的miou为85.15%,原文是85.2%,基本一致。
如果遇到一些代码错误的话,最好看一下自己的路径有没有写错,因为代码中的网络一般不添加的话不用修改,适当的修改送点云的数量,以上仅是本人调试的过程,如有不对,请多多指正!!!