Py-faster-rcnn: EasyDict accessing value issue

Created on 12 Dec 2016  路  6Comments  路  Source: rbgirshick/py-faster-rcnn

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!

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.

All 6 comments

@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!

Was this page helpful?
0 / 5 - 0 ratings