hustvl / ViTMatte

[Information Fusion (Vol.103, Mar. '24)] Boosting Image Matting with Pretrained Plain Vision Transformers
MIT License
339 stars 33 forks source link

作者您好,我想向您请教关于复现您的论文实验过程中遇到的一些问题。 #34

Closed davislee546 closed 4 months ago

davislee546 commented 4 months ago

作者您好! 我在复现您的论文的实验模型vit-s的时候,由于只能使用RTX 2080Ti来训练代码,并且使用的vit.py文件是您在issue #10 里面提到替换的MatteAnything 中的vit.py文件。batch_size从16调到了4,epoch=100,num_workers=2,学习率为5e-4,其他所有参数设置都是默认值,数据集也是按照默认的文件夹设置。 目前出现的情况是一直无法复现出您原论文里面的精度,并且精度相差较多,SAD只能跑到24左右。 请问您的实验过程中精度是否和batch_size的大小设置相关性非常大呢?您是否有尝试过将batch_size设的很小时候,SAD等指标是否有受到影响?

JingfengYao commented 4 months ago

按照您的说法,我猜测这里是没有被修改的。如果batchsize变小, 这里的16也要改成4。不然训练的epoch其实只有25。

顺便说一句,您可以随时提问,但您可以直接在这个issue继续提问,而不必打开太多新的issue。

davislee546 commented 4 months ago

根据你的说法,我猜测这里是没有被修改的。如果batchsize变小,这里的16也要改成4。否则训练的epoch其实只有25。

顺便说一句,你可以随时提问,但你可以直接在这个问题上继续提问,而不必打开太多新的问题。

非常感谢您的及时热心的解答!很抱歉占用您的时间了。 Snipaste_2024-04-17_14-08-05 我想再请问您,就是您标注的迭代次数这边需要将16改成4,那下面的第9行的设置检查点保存的间隔步数以及第13行的学习率切换至不同阶段的迭代次数也都需要将16改成4,保持一致是吗?

JingfengYao commented 4 months ago

对的,因为d2的写法是按照iteration的,这里表示的是 单epoch需要的iteration = 数据集总数 / 单卡batchsize / 训练卡数

davislee546 commented 4 months ago

对的,因为d2的写法是按照iteration的,这里表示的是 单epoch需要的iteration = 数据集总数 / 单卡batchsize / 训练卡数

谢谢您的热心解答!

davislee546 commented 4 months ago

作者您好!请问训练完并生成了log.txt文件,有办法读取loss数据并生成最终loss曲线图像吗?尝试了好多,最后生成的图像都是空白的。请问作者您有尝试过生成类似的曲线图像吗?真不好意思给您添麻烦了!

JingfengYao commented 4 months ago

可以直接用tensorboard,在训练的过程中Log进tensorboard就好

davislee546 commented 4 months ago

作者您好!请问想跑distinction-646测试集的话是否需要重新训练?inference文件好像也是专门针对composition-1K数据集的

JingfengYao commented 4 months ago

作者您好!请问想跑distinction-646测试集的话是否需要重新训练?inference文件好像也是专门针对composition-1K数据集的

是的,是两个不同的benchmark