Невозможно импортировать 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), в моем случае проблема была решена:
- Скопируйте все отсутствующие библиотеки DLL из HDF5 в каталог h5py Проблема для h5py с Python 3.9
- Удалите и установите h5py:3.5 с помощью conda и обновите его до 3.6 с помощью pip (я думаю, что-то не так со сборкой conda)