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 ที่มีความเข้ากันไม่ได้ของไบนารีเป็นเหตุผลที่เป็นไปได้และคำแนะนำของ Jake ในการอัปเดต 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