lzhengning / SubdivNet

Subdivision-based Mesh Convolutional Networks.
MIT License
247 stars 34 forks source link

无法复现论文结果,一些预训练分类模型准确率为0 #13

Closed zhenhao-huang closed 3 years ago

zhenhao-huang commented 3 years ago

使用了cubesmanifold40shrec11-split10shrec11-split16的预训练模型,分类结果:

cubes

name:  Cubes
Test 0: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 103/103 [01:09<00:00,  1.48it/s]
test acc =  0.00015174506828528073
test acc [voted] =  0.0

manifold40

name:  Manifold40
Test 0:   5%|███████                                                                                                                          | 112/2057 [00:11<04:29,  7.22it/s]
[w 0723 15:28:27.917150 76 cudnn_conv_Tx:float32__Ty:float32__Tw:float32__XFORMAT:abcd__WFORMAT:oihw__YFORMAT:abcd__J...hash:798cb5ed49dadaa2_op.cc:200] forward_ algorithm cache is full
Test 0: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2057/2057 [03:12<00:00, 10.67it/s]
test acc =  0.037560777957860614
test acc [voted] =  0.03727714748784441

shrec11-split10

name:  shrec11-split10
Test 0: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 99/99 [00:48<00:00,  2.04it/s]
test acc =  0.0
test acc [voted] =  0.0

shrec11-split16

name:  shrec11-split16
Test 0: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 40/40 [00:28<00:00,  1.43it/s]
test acc =  0.0
test acc [voted] =  0.0
lzhengning commented 3 years ago

@zhenhao-huang ,

你好,请问能检查一下的 jittor 版本吗?最新的 Jittor 引入了一些 bug。我之前使用的版本为 1.2.3.48。

此外,上面的测试结果看起来也有点类似加载了错误的预训练模型,能否检查一下相关路径?

或者先使用训练代码看看能否正常训练?

zhenhao-huang commented 3 years ago

@lzhengning 使用的是最新版本的jittor(1.2.3.78),切换为1.2.3.48结果也是相同的。检查了原代码加载预训练模型的路径是正确的,代码能正常训练。我的显卡为3090

lzhengning commented 3 years ago

代码能够正常训练,并且训练间测试的准确率不是0吗?

zhenhao-huang commented 3 years ago

是的

name:  shrec11-split16
Train 0:   0%|          | 0/158 [00:00<?, ?it/s]
Compiling Operators(46/46) used: 16.5s eta:    0s 
Train 0: 100%|██████████| 158/158 [02:10<00:00,  1.21it/s]train acc =  0.3982142857142857

Test 0: 100%|██████████| 40/40 [01:15<00:00,  1.88s/it]test acc =  0.5761904761904761
test acc [voted] =  0.675

Train 1: 100%|██████████| 158/158 [01:53<00:00,  1.39it/s]train acc =  0.7799603174603175

Test 1: 100%|██████████| 40/40 [00:52<00:00,  1.31s/it]test acc =  0.5488095238095239
test acc [voted] =  0.625
lzhengning commented 3 years ago

您好,抱歉忘记进一步回复。

根据我在自己机器的运行情况,和其他 issue 的反馈情况,没有遇到您这样的问题。从您能够正常训练这一点来看,应该是预训练权重加载的问题。一个下载脚本的存储路径的例子是 /data/SubdivNet/checkpoints/shrec11-split10.pkl