Snips-nlu fit failed with error module 'numpy' has no attribute 'float' after following quick start

155 Views Asked by At

With the latest version 0.20.2 snips-nlu library on a windows 10 machine (python 3.8.15 and numpy 1.24.0), I got attribute Error when fitting the engine. What could be the issue?

(nlpenv) C:\Users\one>python -m snips_nlu train sample_dataset.json nlu_engine
Create and train the engine...
Traceback (most recent call last):
  File "C:\Users\one\.conda\envs\nlpenv\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\one\.conda\envs\nlpenv\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\__main__.py", line 6, in <module>
    main()
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\cli\__init__.py", line 52, in main
    args.func(args)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\cli\training.py", line 23, in _train
    return train(
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\cli\training.py", line 56, in train
    engine = SnipsNLUEngine(config, random_state=random_state).fit(dataset)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\common\log_utils.py", line 30, in wrapped
    res = fn(*args, **kwargs)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\nlu_engine\nlu_engine.py", line 126, in fit
    recycled_parser.fit(dataset, force_retrain)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\common\log_utils.py", line 30, in wrapped
    res = fn(*args, **kwargs)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\intent_parser\probabilistic_intent_parser.py", line 77, in fit
    self.intent_classifier.fit(dataset)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\common\log_utils.py", line 30, in wrapped
    res = fn(*args, **kwargs)
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\snips_nlu\intent_classifier\log_reg_classifier.py", line 67, in fit
    from sklearn.linear_model import SGDClassifier
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\sklearn\linear_model\__init__.py", line 12, in <module>
    from ._least_angle import (Lars, LassoLars, lars_path, lars_path_gram, LarsCV,
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\sklearn\linear_model\_least_angle.py", line 30, in <module>
    method='lar', copy_X=True, eps=np.finfo(np.float).eps,
  File "C:\Users\one\.conda\envs\nlpenv\lib\site-packages\numpy\__init__.py", line 284, in __getattr__
    raise AttributeError("module {!r} has no attribute "
AttributeError: module 'numpy' has no attribute 'float'
1

There are 1 best solutions below

0
On

I think it is the version of numpy. I got the same error while running my code with python3.10.9, numpy 1.24.2, snips-nlu 0.20.2. I uninstall numpy1.24.2, install numpy1.23.5 and then it works. So, the solution might be:

  1. pip uninstall numpy
  2. pip install numpy==1.23.5

I know numpy1.23.5 works because I was once successfully ran the code in an online tutorial with python3.8 and numpy 1.23.5. However, I am not able to find that requirement in snips-nlu Doc. Its' also strange that numpy1.24.2 get installed with pip install snips-nlu.