CRA-PCN icon indicating copy to clipboard operation
CRA-PCN copied to clipboard

关于PCN的复现实验结果

Open chenyang1999 opened this issue 1 year ago • 4 comments

作者您好,感谢您杰出的工作,让我看到了可以用如此小的参数规模达到如此高的性能. 但是我在复现的过程中碰到了一些问题,首先我再train ShapeNet55的时候发现会出现Nan的问题,其次是用您开源出的模型权重测试PCN的时候性能指标比论文中报告出现的略低 Taxonomy #Sample ChamferDistance 02691156 150 4.9409 02933112 150 8.6510 02958343 150 7.5450 03001627 150 6.7271 03636649 150 8.2706 04256520 150 8.3896 04379243 150 5.8836 04530566 150 6.3147 Overall 7.0903

#0 26.5826 19.5242 11.6978 26.5826 | 7.0903 | #0 inf


您在论文中的报告对应的是:

Methods Average Plane Cabinet Car Chair Lamp Couch Table Boat
Ours 6.39 3.59 8.70 7.50 6.70 5.06 8.24 5.72 5.64

我配的环境是pointr,用的是RTX3090,cuda11.1,torch 1.10.1 我想知道为什么Plane, Lamp,Boat这三个物体会和论文报告的性能偏差较大,而且其他物体基本上都能复现出一个比较好的性能? 是因为这些类型的物体在重建的过程中受随机种子的影响较大吗?

chenyang1999 avatar Feb 06 '24 05:02 chenyang1999

首先,感谢您的关注!

1. 训练ShapeNet55时Nan

训练ShapeNet55时候我也碰到过几次Nan的情况,我猜测是seed generator使用了Upsample Transformer的原因 (类似的问题)。 可能的解决方案: 1.尝试多次训练,按照我的经验,Nan的情况一般发生在训练的早期(前30个epoch附近)。 2.将seed generator中的Upsample Transformer换成 Deconvolution 或者 MLP

2. 使用PCN预训练权重无法复现论文结果

使用训练好的权重,我在我的环境(1080Ti, cuda 12.2, torch 1.10.1)随机测试了两次,结果如下:

Taxonomy        #Sample ChamferDistance
02691156        150     3.6072
02933112        150     8.6567
02958343        150     7.5555
03001627        150     6.6614
03636649        150     4.9509
04256520        150     8.4091
04379243        150     5.8136
04530566        150     5.6998
Overall         6.4193
#0 26.5446 19.5163 11.6969 26.5446 | 6.4193 | #0 inf
Taxonomy        #Sample ChamferDistance
02691156        150     3.6164
02933112        150     8.6323
02958343        150     7.5496
03001627        150     6.6717
03636649        150     4.9590
04256520        150     8.4112
04379243        150     5.8005
04530566        150     5.6826
Overall         6.4154
#0 26.5397 19.5151 11.7012 26.5397 | 6.4154 | #0 inf

和您提供的测试结果对比来看,有三个类差的比较多(也就是您提到的三类)。看上去这似乎不是随机种子的问题。

观察测试结果的最后一行:

我:
#0 26.5397 19.5151 11.7012 26.5397 | 6.4154 | #0 inf

您:
#0 26.5826 19.5242 11.6978 26.5826 | 7.0903 | #0 inf

格式:
#0 CD_seed CD_1 CD_2 CD_seed | CD_3 | #0 inf

CD_seed, CD_1, CD_2, CD_3分别代表seed,P1,P2,P3与对应分辨率gt的CD值。只有P3差的比较多,所以请问您是否修改过第三个Upsampling Block的代码?或者,出错的三类的数据存在问题(我在我现在使用的数据集上复现过snowflakenet和seedformer)?

如果没有上述问题,您也可以尝试重新训练,可以参考提供的log。

EasyRy avatar Feb 07 '24 05:02 EasyRy

感谢您快速而准确的回复:) 我之前也跑过Seedformer,发现也是复现不出他论文的精度,自己训的话会差一些结果,当时问了他们也没搞明白为什么? 我觉得可能是不是我下载的PCN数据集有问题,所以都没复现出开源权重的精度,我再去检查一下本地的数据集. 我同意你的观点,Upsample Transformer视乎不是一个可以稳定训练的网络,至少在Seedformer开源出来的代码来看,他是魔改的SnowflakeNet,但是训的并不稳定. 有没有可能是默认的训练Lr=0.001太大了,我注意到pointr用的是0.0005/0.0001?


再次感谢您的回复, 祝您新年快乐~

chenyang1999 avatar Feb 07 '24 14:02 chenyang1999

hello, 训练的一些设定还是沿用SeedFormer的,我们没有做什么调整。

请问,无法在PCN数据集上复现的问题您解决了吗?

另外,我们更新了使用Deconvolution的seed generator,感兴趣的话,您可以尝试下。我认为最终精度差不多,训练也会稳定点。

EasyRy avatar Mar 09 '24 08:03 EasyRy

Hello, 可以参考下这个issue解决Nan的问题,如果有效的话,SeedFormer遇到的问题应该也能解决:

https://github.com/EasyRy/CRA-PCN/issues/5#issuecomment-1997685713

EasyRy avatar Mar 15 '24 02:03 EasyRy

Close this issue since no more responses. If you have more problems, feel free to reopen it.

EasyRy avatar Jul 05 '24 11:07 EasyRy