msracver / Deformable-ConvNets

Deformable Convolutional Networks
MIT License
4.05k stars 957 forks source link

TypeError: _update_params_on_kvstore() #62

Open mtbui2010 opened 7 years ago

mtbui2010 commented 7 years ago

Hi, I got trouble while running the scripts: python experiments/rfcn/rfcn_end2end_train_test.py --cfg experiments/rfcn/cfgs/resnet_v1_101_voc0712_rfcn_dcn_end2end_ohem.yaml

At the first epoch, I got this error: Traceback (most recent call last): File "experiments/rfcn/rfcn_end2end_train_test.py", line 19, in train_end2end.main() File "experiments/rfcn/../../rfcn/train_end2end.py", line 164, in main config.TRAIN.begin_epoch, config.TRAIN.end_epoch, config.TRAIN.lr, config.TRAIN.lr_step) File "experiments/rfcn/../../rfcn/train_end2end.py", line 157, in train_net arg_params=arg_params, aux_params=aux_params, begin_epoch=begin_epoch, num_epoch=end_epoch) File "experiments/rfcn/../../rfcn/core/module.py", line 969, in fit self.update() File "experiments/rfcn/../../rfcn/core/module.py", line 1051, in update self._curr_module.update() File "experiments/rfcn/../../rfcn/core/module.py", line 572, in update self._kvstore) TypeError: _update_params_on_kvstore() takes exactly 4 arguments (3 given)

I guessed that error may be caused by wrong python and mxnet version, so I removed the version existed in my computer and re-install by this way:

cd $(DCN_ROOT)/ git clone --recursive https://github.com/dmlc/mxnet.git cd mxnet/ git checkout 62ecb60 git submodule update make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/ usr/local/cuda USE_CUDNN=1

cd python sudo python setup.py install

I also have checked location of python and mxnet as following: which python /usr/bin/python python import mxnet mxnet. path ['/usr/local/lib/python2.7/dist-packages/mxnet-0.10.1-py2.7.egg/mxnet']

With these configurations, the error still present.

Would you please give me some advice to come over this issue? I am very appreciated your concern.

YuwenXiong commented 7 years ago

If your operations show no error, the mxnet version should be 0.9.5. Our code does not support 0.10 by now

mtbui2010 commented 7 years ago

Thanks for quick reply. As you suggested, I found mxnet 0.9.5 in the following link: https://github.com/dmlc/mxnet/releases/tag/v0.9.5. I tried many ways to install but failed. Would you please guide me how to install mxnet 0.9.5 package?

zhangliliang commented 7 years ago

In my case, I also fail to install the v0.9.5 version of mxnet. Instead, I use the newest version of mxnet in the official branch (0.11. 0).

This problem could be solved after adding one input parameter for the _update_params_on_kvstore function in rfcn/core/module.py

_update_params_on_kvstore(self._exec_group.param_arrays,
                                      self._exec_group.grad_arrays,
                                      self._kvstore,
                                      self._param_names)
zhangliliang commented 7 years ago

Hmm. Using the mxnet of v0.11.0 would cause another problem during the running in the experiment on VOC.

Thus, I move back to the v.0.9.5 and successfully compile it after turning off the cudnn setting (i.e. set cudnn=0 when compling), since the cudnn in my server is too new for the v0.9.5.

Finally, I could reproduce the results on VOC.

Thanks to the anthors for sharing such good codes. :)

YaraDuan commented 7 years ago

I also have TypeError but for the self.set_params(arg_params, aux_params) at the first epoch..... Is that also cuased by the version of mxnet? And the version of my mxnet is 0.11.0....

arunbuduri commented 6 years ago

We ran into this issue since we upgraded mxnet to 0.12.0 and here's how I just solved it.

I verified that the code change to make _update_params_on_kvstore() take 4 parameters was done on Jun 22, 2017 in mxnet code. I also verified that the 0.10.0-support branch of mxnet did not have this code change committed. So the fix was to build mxnet from 0.10.0-support branch after adding the Deformable operators

Clone mxnet from 0.10.0-support branch git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet --branch "v0.10.0-support"

Copy the Deformable operators cp -r $(DCN_ROOT)/rfcn/operator_cxx/* $(MXNET_ROOT)/src/operator/contrib/

Build and install mxnet as per instructions