zhanghang1989 / zhanghang1989/PyTorch-Encoding

training on PASCAL Context

Open
#279 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

invalid
Dominant language
Python
Stars
2k
Forks
448
PR merge metrics
No merged PRs in 30d

Description

Hello,

I am trying to use that pcontext.py in your repo to reproduce the results from another paper, EMANet (Expectation Maximization Attention Networks, ICCV 2019), but I'm currently ~4% away from the mIOU values cited in the repo.
Following the advice in #179 , #78 I train the EMANet on 59 classes without the background class, by applying def _mask_transform(self, mask) during training. https://github.com/zhanghang1989/PyTorch-Encoding/blob/d9dea1724e38362a7c75ca9498f595248f283f00/encoding/datasets/pcontext.py#L97 I also apply def _mask_transform(self, mask) during evaluation of the mIOU on the test (val) set.

However, I noticed that pcontext.py does not actually use _mask_transform() for training but still sets NUM_CLASS = 59 https://github.com/zhanghang1989/PyTorch-Encoding/blob/d9dea1724e38362a7c75ca9498f595248f283f00/encoding/datasets/pcontext.py#L19

https://github.com/zhanghang1989/PyTorch-Encoding/blob/d9dea1724e38362a7c75ca9498f595248f283f00/encoding/datasets/pcontext.py#L71-L95

Is there anything about the training procedure that I may be misunderstanding? I'm assuming that I've done something wrong in the training of the network rather than writing the script for multi-scale evaluation because of the huge difference in performance (~ 4%).

Is it possible that number of training iterations can have a huge effect on the performance? I am using 15k iterations (~48 epochs) as cited in the EMANet paper, but I noticed in the CFNet paper, you use 80 epochs (~25k iterations).

I would really appreciate your help.
I look forward to hearing from you.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read encoding/datasets/pcontext.py around NUM_CLASS, _mask_transform, and the training and evaluation paths referenced in the report. Reproduce the EMANet setup with 59 classes, compare the 15k- and 25k-iteration cases, and verify which procedure accounts for the reported mIoU difference; done means the training behavior and discrepancy are explained.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
computer-vision, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.