Невозможно импортировать ktrain из-за ImportError: ошибка загрузки DLL при импорте defs: указанная процедура не может быть найдена

Ниже приведена ошибка, которую я получил, когда пытался import ktrain.

      ---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_16480/1394454297.py in <module>
      1 import numpy as np
----> 2 import ktrain
      3 from ktrain import text
      4 import tensorflow as tf
      5 import pandas as pd

~\anaconda3\envs\tfgpu\lib\site-packages\ktrain\__init__.py in <module>
      1 from .version import __version__
      2 from . import imports as I
----> 3 from .core import ArrayLearner, GenLearner, get_predictor, load_predictor, release_gpu_memory
      4 from .vision.learner import ImageClassLearner
      5 from .text.learner import BERTTextClassLearner, TransformerTextClassLearner

~\anaconda3\envs\tfgpu\lib\site-packages\ktrain\core.py in <module>
      9 from .vision.preprocessor import ImagePreprocessor
     10 from .vision.predictor import ImagePredictor
---> 11 from .text.preprocessor import TextPreprocessor, BERTPreprocessor, TransformersPreprocessor
     12 from .text.predictor import TextPredictor
     13 from .text.ner.predictor import NERPredictor

~\anaconda3\envs\tfgpu\lib\site-packages\ktrain\text\__init__.py in <module>
----> 1 from .models import print_text_classifiers, print_text_regression_models, text_classifier, text_regression_model
      2 from .data import texts_from_folder, texts_from_csv, texts_from_df,  texts_from_array
      3 from .ner.data import entities_from_gmb, entities_from_conll2003, entities_from_txt, entities_from_df, entities_from_array
      4 from .ner.models import sequence_tagger, print_sequence_taggers
      5 from .eda import get_topic_model

~\anaconda3\envs\tfgpu\lib\site-packages\ktrain\text\models.py in <module>
      1 from ..imports import *
      2 from .. import utils as U
----> 3 from . import preprocessor as tpp
      4 
      5 

~\anaconda3\envs\tfgpu\lib\site-packages\ktrain\text\preprocessor.py in <module>
      5 from . import textutils as TU
      6 
----> 7 from transformers import AutoConfig, TFAutoModelForSequenceClassification, AutoTokenizer, TFAutoModel
      8 
      9 

~\anaconda3\envs\tfgpu\lib\site-packages\transformers\__init__.py in __getattr__(self, name)
   2188             if name == "__version__":
   2189                 return __version__
-> 2190             return super().__getattr__(name)
   2191 
   2192     sys.modules[__name__] = _LazyModule(__name__, _import_structure)

~\anaconda3\envs\tfgpu\lib\site-packages\transformers\file_utils.py in __getattr__(self, name)
   1493         elif name in self._class_to_module.keys():
   1494             module = self._get_module(self._class_to_module[name])
-> 1495             value = getattr(module, name)
   1496         else:
   1497             raise AttributeError(f"module {self.__name__} has no attribute {name}")

~\anaconda3\envs\tfgpu\lib\site-packages\transformers\file_utils.py in __getattr__(self, name)
   1492             value = self._get_module(name)
   1493         elif name in self._class_to_module.keys():
-> 1494             module = self._get_module(self._class_to_module[name])
   1495             value = getattr(module, name)
   1496         else:

~\anaconda3\envs\tfgpu\lib\site-packages\transformers\models\auto\__init__.py in _get_module(self, module_name)
    158 
    159         def _get_module(self, module_name: str):
--> 160             return importlib.import_module("." + module_name, self.__name__)
    161 
    162     sys.modules[__name__] = _LazyModule(__name__, _import_structure)

~\anaconda3\envs\tfgpu\lib\importlib\__init__.py in import_module(name, package)
    125                 break
    126             level += 1
--> 127     return _bootstrap._gcd_import(name[level:], package, level)
    128 
    129 

~\anaconda3\envs\tfgpu\lib\site-packages\transformers\models\auto\modeling_tf_auto.py in <module>
     24 
     25 # Add modeling imports here
---> 26 from ..albert.modeling_tf_albert import (
     27     TFAlbertForMaskedLM,
     28     TFAlbertForMultipleChoice,

~\anaconda3\envs\tfgpu\lib\site-packages\transformers\models\albert\modeling_tf_albert.py in <module>
     40     TFTokenClassifierOutput,
     41 )
---> 42 from ...modeling_tf_utils import (
     43     TFMaskedLanguageModelingLoss,
     44     TFMultipleChoiceLoss,

~\anaconda3\envs\tfgpu\lib\site-packages\transformers\modeling_tf_utils.py in <module>
     23 from typing import Dict, List, Optional, Union
     24 
---> 25 import h5py
     26 import numpy as np
     27 import tensorflow as tf

~\anaconda3\envs\tfgpu\lib\site-packages\h5py\__init__.py in <module>
     31         raise
     32 
---> 33 from . import version
     34 
     35 if version.hdf5_version_tuple != version.hdf5_built_version_tuple:

~\anaconda3\envs\tfgpu\lib\site-packages\h5py\version.py in <module>
     13 
     14 from collections import namedtuple
---> 15 from . import h5 as _h5
     16 import sys
     17 import numpy

h5py\h5.pyx in init h5py.h5()

ImportError: DLL load failed while importing defs: The specified procedure could not be found.

Я искал множество возможных решений этой проблемы в Интернете, а также на YouTube, но все еще не смог решить эту проблему.

Вот характеристики моего компьютера и особенности среды: ОС: Windows 10 Версия Python: 3.9.0tensorflow: 2.5.0tensorflow-gpu: 2.5.0 Графический процессор: RTX 2080

1 ответ

Для тех, у кого возникла такая же проблема при импорте h5py (я использовал anaconda в Windows и пытался установить h5py), в моем случае проблема была решена:

  1. Скопируйте все отсутствующие библиотеки DLL из HDF5 в каталог h5py Проблема для h5py с Python 3.9
  2. Удалите и установите h5py:3.5 с помощью conda и обновите его до 3.6 с помощью pip (я думаю, что-то не так со сборкой conda)
Другие вопросы по тегам