OpenNIR icon indicating copy to clipboard operation
OpenNIR copied to clipboard

Problem on Loading MatchZoo Rankers

Open albertoueda opened this issue 4 years ago • 5 comments

Perhaps it is a MatchZoo issue.

Code:

import pyterrier as pt
if not pt.started(): 
    pt.init(tqdm='notebook')
import onir_pt

Log:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-dabbde9562ae> in <module>
      5     pt.init(tqdm='notebook')
      6 
----> 7 import onir_pt

/users/tr.aueda/anaconda3/envs/onir/lib/python3.7/site-packages/onir_pt/__init__.py in <module>
     21 
     22 import pyterrier
---> 23 import onir
     24 
     25 _logger = onir.log.easy()

/users/tr.aueda/anaconda3/envs/onir/lib/python3.7/site-packages/onir/__init__.py in <module>
     21 logger = log.Logger('onir')
     22 
---> 23 from onir import util, injector, metrics, datasets, interfaces, rankers, config, trainers, predictors, vocab, pipelines

/users/tr.aueda/anaconda3/envs/onir/lib/python3.7/site-packages/onir/rankers/__init__.py in <module>
      7 from onir.rankers import base, conv_knrm, drmm, duetl, knrm, matchpyramid, pacrr, trivial
      8 from onir.rankers import vanilla_transformer, cedr_drmm, cedr_knrm, cedr_pacrr, epic
----> 9 from onir.rankers import matchzoo

/users/tr.aueda/anaconda3/envs/onir/lib/python3.7/site-packages/onir/rankers/matchzoo.py in <module>
      5 if matchzoo.is_available:
      6     rankers.register('mz_knrm')(matchzoo.generate_mz_ranker(matchzoo.mz.models.KNRM))
----> 7     rankers.register('mz_conv_knrm')(matchzoo.generate_mz_ranker(matchzoo.mz.models.ConvKNRM))
      8     # This one doesn't seem to train properly...
      9     # rankers.register('mz_drmmtks')(generate_mz_ranker(matchzoo.mz.models.DRMMTKS))

/users/tr.aueda/anaconda3/envs/onir/lib/python3.7/site-packages/onir/interfaces/matchzoo.py in generate_mz_ranker(MatchZooModel)
     44 
     45     """
---> 46     default_config = generate_default_config(MatchZooModel)
     47 
     48     class MatchZooBaseRanker(rankers.Ranker):

/users/tr.aueda/anaconda3/envs/onir/lib/python3.7/site-packages/onir/interfaces/matchzoo.py in generate_default_config(MatchZooModel)
    119     """
    120     default_config = rankers.Ranker.default_config()
--> 121     default_params = MatchZooModel.get_default_params()
    122     for param in default_params.keys():
    123         if param not in _CONFIG_IGNORED_PARAMS:

TypeError: get_default_params() missing 1 required positional argument: 'cls'

albertoueda avatar Apr 10 '21 12:04 albertoueda

Problem solved! Found the recommended command at matchzoo.py: pip install matchzoo-py==1.0

Previously I had tried to update via: pip install --upgrade git+https://github.com/NTMC-Community/MatchZoo.git' , but it did not solve the problem.

Not sure if it was related, but I had a previous version of matchzoo (2.2.0) installed, not matchzoo-py. Perhaps we need an entry in requirements.txt?

albertoueda avatar Apr 10 '21 13:04 albertoueda

Sounds good- thanks!

Just to be clear-- matchzoo-py==1.0 worked, correct?

seanmacavaney avatar Apr 10 '21 13:04 seanmacavaney

Just to be clear-- matchzoo-py==1.0 worked, correct?

Yes!

albertoueda avatar Apr 10 '21 16:04 albertoueda

I think rather than adding it to the requirements.txt (which would mean it's required for all installations of OpenNIR), I'll add a check in matchzoo.py to see that it's a supported version (using matchzoo.__version__) & print a message if it's not. Does this sound okay?

seanmacavaney avatar Apr 12 '21 16:04 seanmacavaney

It sounds great :)

albertoueda avatar Apr 12 '21 20:04 albertoueda