visinf / da-sac Goto Github PK
View Code? Open in Web Editor NEWSelf-supervised Augmentation Consistency for Adapting Semantic Segmentation (CVPR 2021)
License: Apache License 2.0
Self-supervised Augmentation Consistency for Adapting Semantic Segmentation (CVPR 2021)
License: Apache License 2.0
Hi, thanks for providing this great work!!
It seems that in the implementation of DeepLab with ResNet101, no matter freeze_bn is true or false it will call self._freeze_bn so the BN will be fixed. Should line 196 be commented out?
Lines 190 to 196 in b6f0a90
Thanks:)
Is there any little trick or possible improvement like loss function can be used on your code? It's my coursework this term to try to optimize some work just on task GTAV->Cityscapes and I find yours. I tried some other focal loss function but failed. Maybe your team have some other ideas or solutoins just for GTAV->.
I am a beginner in deep learning, can the author tell me how to test it online? What data needs to be uploaded? Many thanks!
Thanks for your interesting work! Have you done experiments without ABN, i.e, training souce data with fixed BN and updating BN for the second stage?
Hi, @arnike. Thanks for your marvelous work.
When I tried to reproduce the task GTA5 to Cityscpaes, there is an unexcepted performance drop (e.g., Epoch 96: 31.4 mIoU, Epoch 98: 32.1 mIoU) and detailed results are run-.-tag-logits_up_all_mIoU.csv. So far, the best result is 42.9 mIoU (Epoch 182), which lags behind the reported result in the paper.
And the best result of ABN stage
is
Epoch >>> 94 <<<
Averaging 19 classes:
IoU: 0.388
Pr: 0.661
Re: 0.505
[0] Validation / val_cityscapes / Val: 0.23m
Any suggestion for this problem? Your help is highly appreciated.
Hi,
Thanks for the super nice work!! I wonder what modifications I should do if I want to use my own dataset? Suppose I have a source domain dataset A with corresponding images/mask, and target domain dataset B with corresponding images/mask. What folder should I put them? Any advice will be appreciated! Thanks.
By the way, have you tried training the model in a relatively smaller dataset, e.g. 10K images? Would the model still achieve such good performance?
Figure 1 and Table 4 in your paper are very well drawn. Could you share how you drew Figure 1 and Table 4 in your paper? Such as this part of the latex code?
Try to train base model on GTAV, this error occured everytime on the 3rd or 4th(if I turned down the batchsize) epoch. Tracing back to the same line. We need some help here ^-^
-- Process 1 terminated with the following error:
Traceback (most recent call last):
File "/disk1/hl/anaconda3/envs/da-sac/lib/python3.10/site-packages/torch/multiprocessing/spawn.py", line 69, in _wrap
fn(i, *args)
File "/disk1/hl/da-sac/train.py", line 518, in main_worker
score = time_call(trainer.validation, "Validation / {} / Val: ".format(val_set),
File "/disk1/hl/da-sac/train.py", line 498, in time_call
val = func(*args, **kwargs)
File "/disk1/hl/da-sac/train.py", line 378, in validation
masks_all = eval_batch(batch)
File "/disk1/hl/da-sac/train.py", line 358, in eval_batch
loss, masks = step_func(epoch, batch, train=False, visualise=False)
File "/disk1/hl/da-sac/train.py", line 151, in step
losses_ret[key] = val.mean().item()
RuntimeError: CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
How do you think about the "4.3. Distillation to self-supervised model" in ProDA?
The ProDA without knowledge distillation has a result similar to SAC, and how do you think whether knowledge distillation can bring enhancement for SAC?
Hello, I would like to reproduce your code. Which file should I start from and run convet first_ Train_ Is ids.py converting image labels, and then running main.py or train.py
Thanks for sharing the code.
Have you investigate the influence of T (frequency of updating momentum network)? There's not corresponding ablation study in paper.
Counld you please report the result of setting with different T ?
Hi, thanks for your awesome work and sharing code.
For ResNet101-DeepLab on GTAV-to-Cityscapes UDA task, I have rerun your code with the provided pre-trained model and weights for importance sampling, however, the best mIoU on val_cityscpaes
is only 50.4%, which is worse than the paper result of 53.8%.
Is the problem caused by 2 GPUs? I reproduced the experiment on 2 NVIDIA Tesla V100 with 32 GB memory. However, I have noticed that you set batch_target
as 1 for each GPU in code, so the total batch size of target data is less than the setting in your environment with 4 GPUs.
If possible, can you provide the complete experiment logs? They will be helpful for me to debug. :-)
Hi,
In your code, there's an argument called reset_teacher
, which re-initializes the momentum network denoted as self.slow_net
.
I would like to know when does reset_teacher = True, so that the momentum gets re-initialized to the state of the actual SegmentationNet denoted as self.backbone
.
Because from what I understood, the MomentumNet
gets initialized from the beginning to be equal to SegmentationNet
, then gets updated using the exponential moving average formula and never gets re-intialized.
Thank you very much !! 😃
Hi, thanks for your contribution! I really like your paper. I am currently training your model in a slightly different setup (Cityscapes ---> BDD), and I see that your algorithm is already able to run an evaluation on all the validation dataloaders defined in datasets/__init__.py
after finishing every epoch.
What I would like to do is to actually evaluate the resulting model on other datasets that do not participate in the training process. In order to do this, I am forced to load your model and checkpoint, and run an evaluation on the datasets that I want. Aside from generating the .txt
files on the data
folder, how can I run the evaluation without having to use the scripts of cityscapes?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.