ryanxingql / stdf-pytorch

Implementation of "Spatio-Temporal Deformable Convolution for Compressed Video Quality Enhancement" (AAAI'20).
https://www.aiide.org/ojs/index.php/AAAI/article/view/6697
Apache License 2.0
155 stars 20 forks source link

请问pytorch以及cuda版本对权重影响很大嘛? #27

Open Rhhhhhhh opened 3 weeks ago

Rhhhhhhh commented 3 weeks ago

实验室用的是4090,所以测试环境不是10.2,用的11.3,pytorch用的是1.12,但是我在使用原始参数复现的几次最好的效果也只能达到0.61db左右,但是确实使用预训练的模型可以达到0.78db的效果,如果差一点点还能够理解,这个差的是否是有点多了?

ryanxingql commented 3 weeks ago

pytorch和cuda版本应该不会有显著影响。 请问训练数据是一样的吗?如果整个流程(数据、脚本)都是一样的,那么我也不清楚具体原因;差的有点多,不像是随机噪声。

Rhhhhhhh commented 3 weeks ago

是的,训练和验证数据使用的都是mfqev2数据集,创建lmdb的代码也没有修改过,就是原封不动跑了几次,都是完全达不到预训练实验效果或者是论文效果。 环境是ubuntu20.04。会是一卡训练和多卡训练的不同情况导致的吗?(个人觉得应该没有影响?使用的是mfqev2_1G的配置文件)

ryanxingql commented 3 weeks ago

建议试试不用 LMDB 跑。 可能预训练模型不是用 LMDB 跑的,时间有点久了,我不太确定。 因为 LMDB 是预先切好的块,不用 LMDB 则是随机切,后者随机性更强。 如果性能 drop 确实是 LMDB 导致的,感谢你的实验和提醒🙏

Rhhhhhhh commented 3 weeks ago

好的,十分感谢!我可以尝试一下。不过可以提供一些思路吗?我个人设想的是直接从yuv序列先裁剪出中心128*128的图片以及前后帧,以多帧图片的形式送入模型中训练吗?(好像这个流程跟LMDB的做法是类似的)

ryanxingql commented 2 weeks ago

建议参考一下这个仓库:https://github.com/ryanxingql/powerqe 里面有 STDF,是非 LMDB 版本。 把数据改成 Y 输入,然后模型改为单通道即可(原本是 RGB 3 通道输入)。

PS. 我没记错的话,这个 stdf-pytorch 仓库评估的应该是 Y-PSNR,因为只对 Y 做了增强。