But this function is not called during the optimizer initilzation and you load all parameters with one learning rate.
This is also different to the AdaptSeg code.
Is this on purpose ? Is this giving better results than using the seperate learning rates for layer1 to layer4 and a different one for layer5 and layer6
I want to try this out with FCN 8 with VGG16 backend. Do you have some code to show how the decoder architecture changes and how you use the skip connections? If not code , do you have some documentation on the changes to the architecture.
Hello
I was wondering if there is a way that I can fit the model for training on a 11GB GPU without losing a lot in the segmentation accuracy. I initially tried to reduce the cropped size by half but that reduced the resulting segmentation accuracy by 17%.
First of all, thanks for sharing your codes.
Secondly, I am wondering why there are two domain classifiers in the codes each optimized separately (dclf1 and dclf2). The domain classifier is T in Figure 2. Right? As far as I understood the pixel level classification (T) is only applied for comparison to the label ground truth of source domain and there is only one classifier. Am I right? I appreciate it if you guide me about it.
Hi
Thanks for your code!
I trying to reproduce the result in the paper but i get at best 42.4 miou with a batch size of 2 on a P6000 nvidia card with your default setting.
By the way one's needs a card with at least 20Gb of memory to run your code, i try on a card with 16 Gb and i got a memory issue...
I use pytorch 1.2 and i see that you used pytorch 0.3.1 so maybe it's the reason for the performances degradation as i know there is a difference in the default behaviour in upsample between those 2 versions.
Have you try to re run the code with a newer version of pytorch than the 0.3.1?
Thanks
I have downloaded it and trained it on my server (4 GPUs, each GPU with 1 batchsize, 100k iters). I only used the GTA5 data to train the seg network (resnet101) and test on the cityscapes dataset (source only). I found the evaluation results is ~24% mIoU, which have a large gap compared to paper (39%). However, if I change the model from eval() to train() state in the evaluation, I got 34% mIoU. May I ask which state you have used in the paper? If it is eval() state, could you help us to find the potential issues?
As per the paper a "Translation Texture Loss" was employed to maintain the texture similarity between the translated images and target images. I couldn't find the use of "Translation Texture Loss" in your code. Can you please comment on it.
I run the code "train_dise_gta2city.py" following the procedure explained in this project page. The only change I have done was to keep the batch_size as 1, to reduce the memory requirement. I got 38.4% mIoU on val set. This is a big difference as compared to the value of 45.4% reported in the paper. Can you please help me to understand the potential reasons behind this performance drop.
Some of the possible reasons which I could guess are the following.
The mIoU scores are computed at a resolution of 512 x 1024, while the original images are of size 1024 x 2048. In the paper, the resolution used to report the values are not mentioned. May be authors have reported the values at a resolution of 1024 x 2048? Just to check if this is the reason, I used the pretrained weights provided by the authors and got a score of 44.2% for images at resolution 512 x 1024. Therefore, I am assuming that the resolution of test images is not the reason behind performance drop
As per the paper, authors have used pretrained weights from PASCAL VOC dataset to initialise the encoder. This can also be the reason behind performance drop. However, even when I start the training scheme with the pretrained weights provided by the authors, the performance goes down eventually and will start to fluctuate around 38-39%.
Has anyone succeeded to get values around 44 % up on experimentation with this code?
Hi, congratulation on the work! I noticed that you used PASCAL VOC pretrained model and got source-only performance of 39.8 which is higher than that in AdaptSegNet of 36.6. But in the code of seg_model.py, I see that you still use the pretrained model in AdaptSegNet (the same restore_from). I'm a little confused about this. And is the weights in the google drive you provided pretrained on PASCAL VOC as the paper said? And I wonder if the PASCAL VOC pretrained model is available, thanks.