Haochen-Wang409 / U2PL

[CVPR'22] Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels
Apache License 2.0
426 stars 59 forks source link

单卡运行train.sh文件遇见了很大的问题 #79

Closed yang654123 closed 2 years ago

yang654123 commented 2 years ago

image image 如图,这个问题,希望作者可以给出单卡的运行解决方案,感谢您百忙之中的回复

Haochen-Wang409 commented 2 years ago
image

看您的报错,应该是数据集的问题,您可以参照 README 中的方法准备数据集

yang654123 commented 2 years ago
image

看您的报错,应该是数据集的问题,您可以参照 README 中的方法准备数据集

你好,我使用的经典的pascal,splits用的st++论文的,这样也会出现问题么

Haochen-Wang409 commented 2 years ago

您的数据集没有存放在 ../../../../data/VOC2012 这个目录下吧?您可以修改 config.yaml 中的 data_root

yang654123 commented 2 years ago

您的数据集没有存放在 ../../../../data/VOC2012 这个目录下吧?您可以修改 config.yaml 中的 data_root

自己创了一个文件存放pretrain 和 pascal 数据集 和 splits 放在了U2PL文件下级目录里

Haochen-Wang409 commented 2 years ago

您可以展示一下您当前 U2PL 文件夹下的目录结构吗

yang654123 commented 2 years ago

您可以展示一下您当前 U2PL 文件夹下的目录结构吗

image

Haochen-Wang409 commented 2 years ago

您当前的 VOC 的数据 (指的是图片以及对应的分割标签) 没有存放在 U2PL/data 目录下,所以需要更改 config.yaml 中的 data_root

Haochen-Wang409 commented 2 years ago

或者把 dataset/VOCdevkit/VOC2012 下的文件都复制到 data/VOC2012

yang654123 commented 2 years ago

或者把 dataset/VOCdevkit/VOC2012 下的文件都复制到 data/VOC2012

好嘞

yang654123 commented 2 years ago

或者把 dataset/VOCdevkit/VOC2012 下的文件都复制到 data/VOC2012

对了,应该不好使,因为config中的split文件路径不同 我用的st的split

Haochen-Wang409 commented 2 years ago

修改 config.yaml 中的 data_rootdata_list 就可以了 https://github.com/Haochen-Wang409/U2PL/blob/main/experiments/pascal/1464/ours/config.yaml#L4-L5

yang654123 commented 2 years ago

修改 config.yaml 中的 data_rootdata_list 就可以了 https://github.com/Haochen-Wang409/U2PL/blob/main/experiments/pascal/1464/ours/config.yaml#L4-L5

好嘞,十分感谢

yang654123 commented 2 years ago

修改 config.yaml 中的 data_rootdata_list 就可以了 https://github.com/Haochen-Wang409/U2PL/blob/main/experiments/pascal/1464/ours/config.yaml#L4-L5 我更改之后 image 发生了这个问题 image

Haochen-Wang409 commented 2 years ago

可能是split的内容不一致,请您仔细对照两个split的具体内容后,对 u2pl/dataset/base.py 进行针对性修改 https://github.com/Haochen-Wang409/U2PL/blob/main/u2pl/dataset/base.py#L12-L41

Haochen-Wang409 commented 2 years ago

您也可以选择参考 ST++ 的代码进行修改

yang654123 commented 2 years ago

可能是split的内容不一致,请您仔细对照两个split的具体内容后,对 u2pl/dataset/base.py 进行针对性修改 https://github.com/Haochen-Wang409/U2PL/blob/main/u2pl/dataset/base.py#L1 好的我试试

yang654123 commented 2 years ago

作者您好,我想问一下,如果想加checkpoint 应该在在哪里添加。谢谢您

Haochen-Wang409 commented 2 years ago

如果您是想 load pretrain model (比如训练完了一个 1/16 的模型,想在训练 1/4 模型时先 load pretrain),可以在这里加: https://github.com/Haochen-Wang409/U2PL/blob/main/experiments/pascal/1464/ours/config.yaml#L58

如果是想 load pretrained backbone,可以在 u2pl/models/resnet.py 中的 model_urls 里面修改

yang654123 commented 2 years ago

如果您是想 load pretrain model (比如训练完了一个 1/16 的模型,想在训练 1/4 模型时先 load pretrain),可以在这里加: https://github.com/Haochen-Wang409/U2PL/blob/main/experiments/pascal/1464/ours/config.yaml#L58

如果是想 load pretrained backbone,可以在 u2pl/models/resnet.py 中的 model_urls 里面修改

就是怕出现服务器不稳的情况导致代码跑到一半,突然断了,得重新跑,所以想加个checkpoint保存目前模型最优的训练参数

Haochen-Wang409 commented 2 years ago

在 config.yaml 的 saver 字段中加入 auto_resume: True

yang654123 commented 2 years ago

thanks a lot !