ShiqiYu / OpenGait

A flexible and extensible framework for gait recognition. You can focus on designing your own models and comparing with state-of-the-arts easily with the help of OpenGait.
664 stars 154 forks source link

想请教一下为什么推理时需要设置batch size等于gpu nums #203

Closed sdgtgfz closed 6 days ago

sdgtgfz commented 2 months ago

我在自己的模型上进行训练与推理,并在其中运用BatchNorm,但带有BatchNorm进行单例forward的时候会出现error的情况,导致推理结果不理想。所以想请教大佬设置batch size等于gpu nums有什么必要性吗?小批量BatchNorm的问题有解决的方法吗?

ChaoFan996 commented 2 months ago

你好,步态序列是不定长的,多数步态模型在时序纬度有操作,当测试时候多个序列放在同一GPU上时,如果把多个序列cat在一起,时序操作会混淆不同步态序列的特征,导致结果错误,如果不cat一起,for循环地一个序列一个序列地提取特征,这跟一个GPU只放一个步态序列在效率上区别不大,代码却变复杂了。 我想应该有优化方案,欢迎提proposal!

sdgtgfz commented 2 months ago

你好,步态序列是不定长的,多数步态模型在时序纬度有操作,当测试时候多个序列放在同一GPU上时,如果把多个序列cat在一起,时序操作会混淆不同步态序列的特征,导致结果错误,如果不cat一起,for循环地一个序列一个序列一个序列地提取特征,这跟一个GPU只放一个步态序列在效率上区别不大,代码却变复杂了。 我想应该有优化方案,欢迎提提案!

谢谢大佬的解答,大概明白了您的意思,那如果在测试阶段把sampler类型设置为fixed,问题会得到改善吗

github-actions[bot] commented 2 weeks ago

Stale issue message