New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failure in reproducing reported result: enquiry about a few implementation details not stated in the paper #4
Comments
@kate-sann5100 I also reimplement this paper and can not get the reported accuracy. And I also have some questions about details except what you have put forward:
|
@mysayalHan The modified resnet50 may be the one used in PSPNet. You can find the trained backbone in that repo. @kate-sann5100 I have the same overfitting problem and my val FB-IoU ends up with around 63 and val meanIoU finally is about 30. However, training IoU is close to 99. I have contacted the author via email. The code will be available soon. BTW, does anyone have the same problem? My validation loss curve keeps fluctuating and even sometimes going up as the training proceeds..... |
@happycoding1996 Thanks for your reply, but I think the modified ResNet-50 used in this paper is similar to the paper named Dilated Residual Networks. https://github.com/fyu/drn |
@mysayalHan Thank you! |
if self.training:
dropout = Bernoulli(self.dropout_prob).sample().item()
if dropout == 1:
pred_mask = empty_mask
It will be very helpful if you can let me know what meanIOU do you get in evaluation please. |
@happycoding1996 |
@kate-sann5100 I did not use IOM, I simply processed the concatenated support-query feature (512 channels in total) with two following 3x3 convolutions and get the output. The 51% mIOU you got is the IOU of five classes in split-0? I only got about 30 mIOU that calculates on all test classes. The following is the test log of 200 epochs model: |
@happycoding1996 Thank you. IU_array[0] is the background class. |
@kate-sann5100 Did you include IOM in your model? My new result (epoch 18) without IOM module is as follows. |
@happycoding1996 I included the IOM in my model and iteration through 5 (1+4) times during both training and evaluation. |
@kate-sann5100 I noticed that randomly sampling 1000 episodes for testing brings large variance to the final result (3% on my meanIoU). Maybe you should rerun the test several times. |
@happycoding1996 I am just wondering which code base are you using for the data loading part for sampling 1000 pairs support and query? As I want to ensure that my own dataloader is correct which I am using in my method. Thanks |
@MSiam I wrote it by myself. The process follows the one introduced in Section 4.3 of One-Shot Learning for Semantic Segmentation. |
@happycoding1996 Great I wanna ensure that my dataloading process is correct, and I wanna also modify on the code for some of my work, is it possible that you share your code with me on email that you got mIoU 51% on fold 0. I wanted to reproduce the results of this work as well and compare with it while being sure of the process. I also want to ensure from the way this method and OSLSM evaluates the IoU, "it is mentioned in the paper that he evaluates the binary IoU and takes average over all classes", does that mean he includes the original 15 classes as well in that average or did he mean only the 5 classes within the fold? |
@kate-sann5100 Can you share your code with me on my email mysayalhan@gmail.com? It is very strange that I faced dead training (all of the network output are background) even with the |
@happycoding1996 |
@MSiam Very sorry I currently cannot share the code with you since we are using the code based an unpublished work. When that work is accepted, we will release the code on Github. As for the meanIOU, I think this work only takes the average IOU over 5 classes in the testing fold rather than 20 classes. @kate-sann5100 I face a similar case where there exists a very large fluctuation on the validation curve. Even if the training curve steadily gets much improved by a better backbone (ResNet 101), the validation result still fluctuates greatly and gets minor improvement (2% on meanIOU). |
hi all, i have updated the codes with meanIOU as the validation metric. note that this is a quick validation with fixed 321*321 inputs. to reproduce the reported SOA result, you need to input with raw sizes and do multi-scale input test. if you feel multi-scale tests are cumbersome, you can compare the results in the ablation study. The results are below: |
Hi, I have been trying to reimplement this paper and cannot get the reported accuracy. It would be super helpful if you can give me some advice about the following details please:
Currently, I understand one epoch as using all masks available in the dataset as the support target once. However:
If I include all class masks available in PASCAL VOC 2012 and SDS extra annotation into the dataset, the model will overfit after iterating through the dataset for 200 epochs (end up with meanIOU around 35%).
If I do class balancing (take n random masks from each class, where n equals to the number of masks belong to the class with the least number of masks), the meanIOU on validation set will fluctuate a lot (by about 4%) between each epoch even when approach the end of training.
Thanks in advance
The text was updated successfully, but these errors were encountered: