When I start the training with the '--cfg' flag providing the cfg file experiments/cfgs/faster_rcnn_end2end.yml, in the main function it prints all the parameters by
print('Using config:')
pprint.pprint(cfg)
Until now everything goes well because the printed info is correct. But I find that the values of
cfg.TRAIN.HAS_RPN and cfg['TRAIN']['HAS_RPN'] are different (cfg.TRAIN.HAS_RPN is False while cfg['TRAIN']['HAS_RPN'] equals True). The latter is well updated by the loaded cfg file but not the former. I think that's why @hoticevijay in issue #39 has the same problem as me.
Could someone figure out why the two ways of accessing a dict result in different values? Thanks!
@flyingmouse I did faced the same issue. But this is mostly due to the easydict installation.Rather than using other easydict libraries especially conda one, Use `pip install easydict. This should solve your issue
@flyingmouse i have follow the instruction 'pip install easydict' and still have the problem. The value in train_rpn function is set to:
cfg.TRAIN.HAS_RPN = True
cfg.TRAIN.BBOX_REG = False
However, when running to layer.py, i found the parameters not true:
cfg.TRAIN.HAS_RPN = False
cfg.TRAIN.BBOX_REG = True.
Why this happen?
@lixiang-ucas Did you solve this problem? I have the same problem. Thanks!
@vabrishami No, i turn to use the end2end training method, and it just work fine.
@vabrishami Actually it is the bug in easydict.
In my case, I applied anaconda to install the easydict and its version is 1.4. Then this problem happens.
Then I applied "conda uninstall easydict" to remove the old easydict package.
After that, "pip install easydict".
The new version of easydict is 1.7. Everything worked fine.
@deatherving worked!
Most helpful comment
@vabrishami Actually it is the bug in easydict.
In my case, I applied anaconda to install the easydict and its version is 1.4. Then this problem happens.
Then I applied "conda uninstall easydict" to remove the old easydict package.
After that, "pip install easydict".
The new version of easydict is 1.7. Everything worked fine.