Open yangweixiang opened 4 years ago
some issues with you, and cost me almost one day to solve the problem. Seems we set use the constant BN EPS.
self.set_batch_norm_attr(self.model.encoder.named_modules(), 'eps', cfg.MODEL.BN_EPS_FOR_ENCODER)
NameError: name 'self' is not defined in demo.py
I had the same problem. I used multi-gpu for distributed training on the server. Now I'm testing on single-gpu PC. The result is all zero. I followed your method but the result is still zero. How did you solve it, can you solve it in detail?
I train segmentation mode (deeplabV3+MobileNetV2) on my own dataset, demo.py can run , but the result was wrong. all of the catergory is 0(backgourd).
https://github.com/LikeLy-Journey/SegmenTron/blob/master/tools/demo.py
backbone: Inception is ok backbone: MobileNet is not ok .
but if I add below source code in demo.py , it will be work.
if hasattr(self.model, 'encoder') and hasattr(self.model.encoder, 'named_modules') and \
It will change EPS , not use the default.
And I found in https://github.com/LikeLy-Journey/SegmenTron/blob/master/segmentron/solver/optimizer.py
def _get_paramters(model):
I am confused about this change of EPS.
would you please explain the reason of change BN EPS ?