ValueError: размер numpy.ndarray изменен, может указывать на двоичную несовместимость

Я пытаюсь заставить numpy<1.19.0 и ConfigSpace==0.4.16 работать в python==3.7 среде conda. Установленная версия numpy - 1.18.5.

Я получаю следующую ошибку:

Traceback (most recent call last):
  File "/home/user/.conda/envs/deephyper/bin/deephyper", line 5, in <module>
    from deephyper.core.cli import main
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/deephyper/core/cli/__init__.py", line 1, in <module>
    from deephyper.core.cli.cli import main
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/deephyper/core/cli/cli.py", line 9, in <module>
    from deephyper.core.cli import hps, nas, balsam_submit
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/deephyper/core/cli/hps.py", line 6, in <module>
    from deephyper.search.util import load_attr_from
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/deephyper/search/__init__.py", line 6, in <module>
    from deephyper.search.search import Search
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/deephyper/search/search.py", line 8, in <module>
    from deephyper.evaluator.evaluate import Evaluator
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/deephyper/evaluator/__init__.py", line 5, in <module>
    from deephyper.evaluator.evaluate import Encoder
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/deephyper/evaluator/evaluate.py", line 15, in <module>
    import skopt
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/skopt/__init__.py", line 45, in <module>
    from . import callbacks
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/skopt/callbacks.py", line 17, in <module>
    from skopt.utils import dump
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/skopt/utils.py", line 19, in <module>
    from .sampler import Sobol, Lhs, Hammersly, Halton, Grid
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/skopt/sampler/__init__.py", line 4, in <module>
    from .lhs import Lhs
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/skopt/sampler/lhs.py", line 9, in <module>
    from ..space import Space, Categorical
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/skopt/space/__init__.py", line 5, in <module>
    from .space import *
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/skopt/space/space.py", line 27, in <module>
    import ConfigSpace as CS
  File "/home/user/.conda/envs/deephyper/lib/python3.7/site-packages/ConfigSpace/__init__.py", line 37, in <module>
    from ConfigSpace.configuration_space import Configuration, \
  File "ConfigSpace/configuration_space.pyx", line 39, in init ConfigSpace.configuration_space
  File "ConfigSpace/hyperparameters.pyx", line 1, in init ConfigSpace.hyperparameters
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

Я попробовал предлагаемые решения, предложенные в других подобных вопросах, например попробовать другие версии numpy или удалить все numpy установки и переустановить numpy и ConfigSpace с pip параметрами --no-cache-dir --no-binary, но ошибка не исчезла.

Есть ли другие потенциальные решения, которые я мог бы попробовать?


person Jake    schedule 31.01.2021    source источник


Ответы (3)


Я получил дополнительное представление об этой проблеме, просмотрев эту страницу проблемы GitHub. Оказывается, если размер из PyObject меньше размера из заголовка C, для устранения ошибки необходимо обновление пакета, на который указывает ошибка (здесь numpy), и наоборот.

Мне удалось решить проблему, обновив numpy до версии 1.20.0, хотя требование было numpy<1.19.0.

person Jake    schedule 31.01.2021

Поделитесь этим на случай, если это поможет другим: я пытался заставить fairseq работать и наткнулся на то же самое проблема ValueError с двоичной несовместимостью в качестве возможной причины и предложение Джейка об обновлении numpy до 1.20.0 помогли решить проблему даже с помощью специально запрошенных требований для numpy<1.19.0.

person user1722863    schedule 26.02.2021

Я столкнулся с той же проблемой: ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject, и это решение сработало для меня. В частности, используя Dockerfile для создания образа, я устанавливаю flair == 0.8.0.post1, для которого требуется numpy ‹1.19.0. Но после установки flair == 0.8.0.post1 я устанавливаю numpy == 1.20.0, и это позволило избежать проблемы. Этот раздел Dockerfile:

RUN pip install flair==0.8.0.post1
RUN pip install numpy==1.20.0
person user3473556    schedule 17.05.2021