Skip to content

ImportError: To be able to use evaluate-metric/glue, you need to install the following dependencies['sklearn'] using 'pip install sklearn' for instance' #394

@mohammad-albarham

Description

@mohammad-albarham

I was following the tutorial in the Transformers course at Huggingface:

The error appears when I using evaluate library as follows:

import evaluate

metric = evaluate.load("glue", "mrpc")
metric.compute(predictions=preds, references=predictions.label_ids)

The error I have faced as follows: (the Traceback is below)

ImportError                               Traceback (most recent call last)
/home/think3/Desktop/Barham/transformers-course/Fine_tunning.py/Fine_tunning_with_Trainer_API.py in line 5
      64 # %%
      66 import evaluate
----> 68 metric = evaluate.load("glue", "mrpc")
      69 metric.compute(predictions=preds, references=predictions.label_ids)

File ~/Desktop/Barham/transformers-course/.env/lib/python3.8/site-packages/evaluate/loading.py:731, in load(path, config_name, module_type, process_id, num_process, cache_dir, experiment_id, keep_in_memory, download_config, download_mode, revision, **init_kwargs)
    703 """Load a `evaluate.EvaluationModule`.
    704 
    705 Args:
   (...)
    728     `evaluate.EvaluationModule`
    729 """
    730 download_mode = DownloadMode(download_mode or DownloadMode.REUSE_DATASET_IF_EXISTS)
--> 731 evaluation_module = evaluation_module_factory(
    732     path, module_type=module_type, revision=revision, download_config=download_config, download_mode=download_mode
    733 )
    734 evaluation_cls = import_main_class(evaluation_module.module_path)
    735 evaluation_instance = evaluation_cls(
    736     config_name=config_name,
    737     process_id=process_id,
   (...)
    743     **init_kwargs,
    744 )

File ~/Desktop/Barham/transformers-course/.env/lib/python3.8/site-packages/evaluate/loading.py:680, in evaluation_module_factory(path, module_type, revision, download_config, download_mode, force_local_path, dynamic_modules_path, **download_kwargs)
    678                 pass
    679         if not isinstance(e1, (ConnectionError, FileNotFoundError)):
--> 680             raise e1 from None
    681         raise FileNotFoundError(
    682             f"Couldn't find a module script at {relative_to_absolute_path(combined_path)}. "
    683             f"Module '{path}' doesn't exist on the Hugging Face Hub either."
    684         ) from None
    685 else:

File ~/Desktop/Barham/transformers-course/.env/lib/python3.8/site-packages/evaluate/loading.py:633, in evaluation_module_factory(path, module_type, revision, download_config, download_mode, force_local_path, dynamic_modules_path, **download_kwargs)
    631 for current_type in ["metric", "comparison", "measurement"]:
    632     try:
--> 633         return HubEvaluationModuleFactory(
    634             f"evaluate-{current_type}/{path}",
    635             revision=revision,
    636             download_config=download_config,
    637             download_mode=download_mode,
    638             dynamic_modules_path=dynamic_modules_path,
    639         ).get_module()
    640     except ConnectionError:
    641         pass

File ~/Desktop/Barham/transformers-course/.env/lib/python3.8/site-packages/evaluate/loading.py:489, in HubEvaluationModuleFactory.get_module(self)
    486         raise err
    488 imports = get_imports(local_path)
--> 489 local_imports = _download_additional_modules(
    490     name=self.name,
    491     base_path=hf_hub_url(path=self.name, name="", revision=revision),
    492     imports=imports,
    493     download_config=self.download_config,
    494 )
    495 # copy the script and the files in an importable directory
    496 dynamic_modules_path = self.dynamic_modules_path if self.dynamic_modules_path else init_dynamic_modules()

File ~/Desktop/Barham/transformers-course/.env/lib/python3.8/site-packages/evaluate/loading.py:265, in _download_additional_modules(name, base_path, imports, download_config)
    263         needs_to_be_installed.add((library_import_name, library_import_path))
    264 if needs_to_be_installed:
--> 265     raise ImportError(
    266         f"To be able to use {name}, you need to install the following dependencies"
    267         f"{[lib_name for lib_name, lib_path in needs_to_be_installed]} using 'pip install "
    268         f"{' '.join([lib_path for lib_name, lib_path in needs_to_be_installed])}' for instance'"
    269     )
    270 return local_imports

ImportError: To be able to use evaluate-metric/glue, you need to install the following dependencies['sklearn'] using 'pip install sklearn' for instance'

The ImportError raised guided me to install sklearn using pip install sklearn but it didn't worked for me and the error still appearing.

However, I solved the problem by using pip install scikit-learn and it works now.

Is there any error from my side? or is there anything should be changed on the evaluate library for this point?

Note: it seems that sklearn is deprecated, here

The libraries after installing sklearn:

Package            Version       
------------------ --------------
aiohttp            3.8.3         
aiosignal          1.3.1         
asttokens          2.2.1         
async-timeout      4.0.2         
attrs              22.2.0        
backcall           0.2.0         
certifi            2022.12.7     
charset-normalizer 2.1.1         
comm               0.1.2         
datasets           2.8.0         
debugpy            1.6.4         
decorator          5.1.1         
dill               0.3.6         
entrypoints        0.4           
evaluate           0.4.0         
executing          1.2.0         
filelock           3.8.2         
frozenlist         1.3.3         
fsspec             2022.11.0     
huggingface-hub    0.11.1        
idna               3.4           
ipykernel          6.19.4        
ipython            8.7.0         
jedi               0.18.2        
joblib             1.2.0         
jupyter-client     7.4.8         
jupyter-core       5.1.1         
matplotlib-inline  0.1.6         
multidict          6.0.4         
multiprocess       0.70.14       
nest-asyncio       1.5.6         
numpy              1.24.1        
packaging          22.0          
pandas             1.5.2         
parso              0.8.3         
pexpect            4.8.0         
pickleshare        0.7.5         
Pillow             9.3.0         
pip                20.0.2        
pkg-resources      0.0.0         
platformdirs       2.6.2         
prompt-toolkit     3.0.36        
protobuf           3.20.2        
psutil             5.9.4         
ptyprocess         0.7.0         
pure-eval          0.2.2         
pyarrow            10.0.1        
Pygments           2.13.0        
python-dateutil    2.8.2         
pytz               2022.7        
PyYAML             6.0           
pyzmq              24.0.1        
regex              2022.10.31    
requests           2.28.1        
responses          0.18.0        
scipy              1.9.3         
sentencepiece      0.1.97        
setuptools         44.0.0        
six                1.16.0        
sklearn            0.0.post1     
stack-data         0.6.2         
threadpoolctl      3.1.0         
tokenizers         0.13.2        
torch              1.10.0+cu102  
torchaudio         0.10.0+rocm4.1
torchvision        0.11.0+cu102  
tornado            6.2           
tqdm               4.64.1        
traitlets          5.8.0         
transformers       4.25.1        
typing-extensions  4.4.0         
urllib3            1.26.13       
wcwidth            0.2.5         
xxhash             3.2.0         
yarl               1.8.2  

The libraries after installing scikit-learn:

Package            Version       
------------------ --------------
aiohttp            3.8.3         
aiosignal          1.3.1         
asttokens          2.2.1         
async-timeout      4.0.2         
attrs              22.2.0        
backcall           0.2.0         
certifi            2022.12.7     
charset-normalizer 2.1.1         
comm               0.1.2         
datasets           2.8.0         
debugpy            1.6.4         
decorator          5.1.1         
dill               0.3.6         
entrypoints        0.4           
evaluate           0.4.0         
executing          1.2.0         
filelock           3.8.2         
frozenlist         1.3.3         
fsspec             2022.11.0     
huggingface-hub    0.11.1        
idna               3.4           
ipykernel          6.19.4        
ipython            8.7.0         
jedi               0.18.2        
joblib             1.2.0         
jupyter-client     7.4.8         
jupyter-core       5.1.1         
matplotlib-inline  0.1.6         
multidict          6.0.4         
multiprocess       0.70.14       
nest-asyncio       1.5.6         
numpy              1.24.1        
packaging          22.0          
pandas             1.5.2         
parso              0.8.3         
pexpect            4.8.0         
pickleshare        0.7.5         
Pillow             9.3.0         
pip                20.0.2        
pkg-resources      0.0.0         
platformdirs       2.6.2         
prompt-toolkit     3.0.36        
protobuf           3.20.2        
psutil             5.9.4         
ptyprocess         0.7.0         
pure-eval          0.2.2         
pyarrow            10.0.1        
Pygments           2.13.0        
python-dateutil    2.8.2         
pytz               2022.7        
PyYAML             6.0           
pyzmq              24.0.1        
regex              2022.10.31    
requests           2.28.1        
responses          0.18.0        
scikit-learn       1.2.0         
scipy              1.9.3         
sentencepiece      0.1.97        
setuptools         44.0.0        
six                1.16.0        
sklearn            0.0.post1     
stack-data         0.6.2         
threadpoolctl      3.1.0         
tokenizers         0.13.2        
torch              1.10.0+cu102  
torchaudio         0.10.0+rocm4.1
torchvision        0.11.0+cu102  
tornado            6.2           
tqdm               4.64.1        
traitlets          5.8.0         
transformers       4.25.1        
typing-extensions  4.4.0         
urllib3            1.26.13       
wcwidth            0.2.5         
xxhash             3.2.0         
yarl               1.8.2         

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions