zhenhuat / STCFormer

(CVPR2023)3D Human Pose Estimation with Spatio-Temporal Criss-cross Attention
87 stars 5 forks source link

训不出27帧的模型 #10

Closed 1049-xxw closed 5 months ago

1049-xxw commented 7 months ago

请教一下为什么为根据指示训练27帧的模型,没有在第6轮训出44.06的p1指标?

zhenhuat commented 7 months ago

请教一下为什么为根据指示训练27帧的模型,没有在第6轮训出44.06的p1指标?

请问您训练出来的结果是多少呢?

1049-xxw commented 7 months ago

46\47的样子,请问这个模型的训练是跟batchsize有关系吗?我每次都是用gpu的最大内存去跑的模型,请您解惑。

zhenhuat commented 7 months ago

46\47的样子,请问这个模型的训练是跟batchsize有关系吗?我每次都是用gpu的最大内存去跑的模型,请您解惑。

哈喽,这个偏差有点大。你可以参考这个回答调整超参,https://github.com/zhenhuat/STCFormer/issues/2#issuecomment-1675513578

1049-xxw commented 7 months ago

根据里面的描述,get_batch()的代码是正确的,我现在试着修改为x_s = att_s @ v_s + sep2_s + 0.001 * self.drop(sep_s)试试。

1049-xxw commented 7 months ago

我重新训练了一波,结果如下,请问这个误差是否在合理范围

图片

zhenhuat commented 7 months ago

我重新训练了一波,结果如下,请问这个误差是否在合理范围

图片

比之前正常了,44.1上下0.5mm。如果有时间可以再调下超参试试,主要是s 和 batch。

1049-xxw commented 7 months ago

您好,如果有可能,能不能教我一下具体该怎么调,因为我是刚入门这个方向,而且这个东西训一次也要一天左右,万分感谢。

zhenhuat commented 7 months ago

您好,如果有可能,能不能教我一下具体该怎么调,因为我是刚入门这个方向,而且这个东西训一次也要一天左右,万分感谢。

python run_stc.py -f 27 -b 128 --train 1 --layers 6 -s 3 运行脚本里的这些就试主要的超参,f是帧数;b是batch_size;s是采样系数。要是27帧你的机器都得训练一天的话,可能做这个任务有点难度,因为243帧需要的算力是27帧的30倍。

1049-xxw commented 7 months ago

感谢指导和提醒!目前用的是3090,训练27帧,只是b设置为128, s为3的话训练和测试一轮,将近一个小时四十分钟左右。请问单张4090训243帧是否够用?

zhenhuat commented 7 months ago

感谢指导和提醒!目前用的是3090,训练27帧,只是b设置为128, s为3的话训练和测试一轮,将近一个小时四十分钟左右。请问单张4090训243帧是否够用?

可以将s设置为9看看结果。另外,4090确实能让训练速度加快,但是3090和4090的问题主要是显存(24G)不够,我之前用A100(40G)才能跑出243帧的最佳性能。

1049-xxw commented 7 months ago

屏幕截图 2024-04-18 091730 这是修改b和s后的结果,还是在误差范围外

zhenhuat commented 7 months ago

屏幕截图 2024-04-18 091730 这是修改b和s后的结果,还是在误差范围外

44.6差不多吧,你可以再试试python run_stc.py -f 27 -b 128 --train 1 --layers 6 -s 3。 epoch的数目也不是一定6个,这是有随机性的,跟机器和初始化都有关。