Closed tusharkumar91 closed 5 years ago
Thanks to the help from @andfoy, I am now able to get the same mIoU numbers as mentioned in Readme using the pre-trained weights. The issue was that I was using the latest version of SRU. On suggestion from @andfoy, I switched to the version of SRU as of this commit. Once I switched to this version, running the below mentioned command gave me the following results.
Command Used for evaluating the model
python -u -m dmn_pytorch.train --data referit_data --dataset unc --val testA --backend dpn92 --num-filters 10 --lang-layers 3 --mix-we --snapshot ./snapshots/dmn_unc_weights.pth --epochs 0 --eval-first --high-res
Result of Evaluation(using above command)
UNC testA
Maximum IoU: 0.5212885141373 - Threshold: 0.2250000000000
UNC testB
Maximum IoU: 0.4338888525963 - Threshold: 0.1750000000000
UNC+ testA
Maximum IoU: 0.4425530731678 - Threshold: 0.3750000000000
UNC+ testB
Maximum IoU: 0.3249503076077 - Threshold: 0.2750000000000
Referit test
Maximum IoU: 0.5280885696411 - Threshold: 0.4250000000000
Gref val
Maximum IoU: 0.3764866888523 - Threshold: 0.2000000000000
As one can see that the above numbers are similar to that provided in the readme file. So using the version of SRU provided in the ReadMe file instead of using the latest version fixed the issue that I was facing and enables me to reproduce the results mentioned in ReadMe.
@andfoy Great thanks for your timely reply. I followed the instruction to update the SRU to 2.1.3 which already support Prnvrtc 9.2. But my problem is still there.
python -u -m dmn_pytorch.train_gai --data referit_data --dataset referit --val val --backend dpn92 --num-filters 10 --lang-layers 3 --mix-we --save-folder weights --snapshot dmn_referit_weights.pth --epochs 0 --eval-first
Evaluation done. Elapsed time: 1035.489 (s) Maximum IoU: 0.1528985351324 - Threshold: 0.0000000000000
I couldn't add --high-res because of out of memory problem, I had nvidia 2080 with 8G memory. I don't know the reason why it's so easy to leak. Thanks for your consideration.
P.S: Dependency: Python 3.6,8 Pytorch 1.0.1 CUDA 10 sru 2.1.3 prnvrtc 9.2 Window 10
I followed the instruction to update the SRU to 2.1.3 which already support Prnvrtc 9.2
Actually, you need to install the SRU version from this commit:
pip install -U git+https://github.com/taolei87/sru.git@43c85ed --no-deps
I couldn't add --high-res because of out of memory problem, I had nvidia 2080 with 8G memory.
Try reducing the image size of your inputs, using --size
(it defaults to 512 pixels on the largest side). Using the high-res pretrained weights on a low-res fashion won't work, as those weights use the Upsampling module, whereas low-res mode does not.
Followed your instruction and reinstall sru-0.0.1, remove encode() with 348 line.
python -u -m dmn_pytorch.train_gai --data referit_data --dataset referit --val val --backend dpn92 --num-filters 10 --lang-layers 3 --mix-we --save-folder weights --snapshot dmn_referit_weights.pth --epochs 0 --eval-first --high-res
Still mIoU around 0.15. @andfoy
I resize from 512 to 384, it works well.
Hi,
I am attempting to use the DMN model with the pre-trained weights provided. However, whenever I evaluate the model using the below-mentioned command for UNC dataset using the pre-trained weights downloaded from the link provided in the ReadMe, I get a very low mIoU(close to 0.11).
Pre-trained weights( for unc dataset)
Command Used for evaluating the model
Result of Evaluation(using above command)
I have tried with other datasets also but I am unable to get anywhere close to the performance numbers mentioned in the ReadMe using the pre-trained weights. I am not sure what the issue is here. Below I provide the different versions of packages/libraries I am using.
Dependency Versions
Please note that I am getting low numbers for all datasets and have only provided UNC dataset(and numbers) as an example.