Bobholamovic / CDLab

Yet another repository for developing and benchmarking deep learning-based change detection methods.
The Unlicense
196 stars 30 forks source link

如何调整输入图片的尺寸 #15

Open M2WindRunner opened 1 year ago

M2WindRunner commented 1 year ago

我用常用的参数训练发现超过了显存,其他的stanet代码里有 --load_size 和 --crop_size 的参数,在调小 load_size 参数(输入网络的参数)之后即可训练,请问您的代码里有没有类似的参数可以调节呢?

Bobholamovic commented 1 year ago

https://github.com/Bobholamovic/CDLab/blob/master/src/impl/builders/data_builders.py

可以在这个文件里修改数据集训练、验证时使用的数据增强、数据预处理策略~

M2WindRunner commented 1 year ago

请问应该如何修改,我现在是普遍差20-200mb的显存就可以训练了(初学菜鸟,数据要求紧急,望请指导)

Bobholamovic commented 1 year ago

以SVCD数据集为例,你可以把build_svcd_train_dataset的内容调整为:

    configs = get_common_train_configs(C)
    configs.update(dict(
        transforms=(Compose(Choose(
            HorizontalFlip(), VerticalFlip(), 
            Rotate('90'), Rotate('180'), Rotate('270'),
            Shift(), 
            Identity()),
            Crop(256),
        ), Normalize(np.asarray(C['mu']), np.asarray(C['sigma'])), None),
        root=constants.IMDB_SVCD,
        sets=('real',)
    ))

以上代码将输入随机裁剪为256x256大小,如果你希望裁剪为其它大小,可以将256修改为别的数字。

M2WindRunner commented 1 year ago

刚刚一直在尝试各种数值,但并没有改变所占的显存大小,但还是感谢您的帮助

Bobholamovic commented 1 year ago

请确认修改的数据集和使用的数据集是否一致。此外,如果修改图像尺寸收益不大,建议可以考虑尝试更小的batch size。

M2WindRunner commented 1 year ago

我就是从您所提供的链接下载的数据集,调小batch_size之后需要的显存不降反升,我也是第一次碰到这种情况(吐血)

M2WindRunner commented 1 year ago

另外,我在运行其他stanet代码时也遇到了这种方法,减小输入图片的尺寸到128*128之后即可顺利运行,不知您的代码是否有锁死输入大小的操作

Bobholamovic commented 1 year ago

另外,我在运行其他stanet代码时也遇到了这种方法,减小输入图片的尺寸到128*128之后即可顺利运行,不知您的代码是否有锁死输入大小的操作

调整输入的地方应该就在那里,具体为啥没有生效,可能需要debug一下~ batch size减小之后显存用量增加这一点确实有点儿奇怪,我也没有碰到过,建议可以断点调试看看各步骤资源用量是否符合预期

M2WindRunner commented 1 year ago

还有一情况,很多调用在文件里爆红,显示Unresolved reference,不知这对使用是否有所影响

Bobholamovic commented 1 year ago

Unresolved reference

这个我想大概是IDE的警告,应该和程序本身的正确性无关

M2WindRunner commented 1 year ago

非常感谢您今晚的解答,看来我这次跟您的作品无缘了(哭)

M2WindRunner commented 1 year ago

之前的问题在第二天就解决了(开心),看来发现问题是需要冷却的