【问题标题】:HDBSCAN: ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObjectHDBSCAN:ValueError:numpy.ndarray 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 88,从 PyObject 得到 80
【发布时间】:2021-10-30 05:26:44
【问题描述】:

我尝试初始化 HDBSCAN 以在 JupytherLab 中进行聚类。我使用 Python 3.7.6..

import numpy as np
import pandas as pd

from sklearn.datasets import load_digits

from sklearn.manifold import TSNE
import hdbscan

总是出现相同的错误(见标题),直到现在我不知道它究竟是从哪里来的。

我查看了几个帖子后的解决方案,但直到现在还没有解决方案对我有帮助。

例如:

  1. 卸载并安装 numpy。
  2. 已安装 numpy >= 1.20.0
  3. 试过像 pip install package --no-cache-dir --no-binary :all:这样的行
  4. 试过以下包版本组合:hdbscan=0.8.19, matplotlib=3.2.2, numpy=1.15.4, pandas=0.23.4, scikit-learn=0.20.1, scipy=1.1.0, tensorflow=1.13 .1.

我也尝试过安装 tensorboard 之类的软件包,但没有帮助。一切都是通过终端和 pip 安装的。

我开始想,问题可能更深——但也许我忽略了一些重要的事情。

有人可以帮我找出错误吗?

最好的问候

菲利普

【问题讨论】:

    标签: python initialization unsupervised-learning hdbscan


    【解决方案1】:

    升级 numpy 库解决了这个问题。 我的numpy版本是1.22.0,sklearn版本是0.24.1。

    你也应该看看这里:ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • @Flair 这是有道理的。我会更新我的答案。谢谢
    【解决方案2】:

    我猜你可能已经看到了很长的HDBSCAN GitHub issue 似乎仍然没有明确的解决方案。不幸的是,它似乎以奇怪的方式影响不同的系统,并且有大量可能的解决方案和对其他人有用的东西(就我个人而言,上周我遇到类似问题时,重新安装 numpy 对我有用。)

    您可以尝试这么多事情但仍然无法正常工作,这一事实似乎令人怀疑。也许有关您的 Python 安装或您尝试它们的方式的其他内容会影响解决方案?例如,JupyterLab 是否肯定使用与您尝试这些解决方案相同的 Python 环境? (您可以通过卸载 HDBSCAN 并查看错误是否更改为“找不到包”来测试这一点。)

    除了 GitHub 问题中的许多解决方案(听起来您已经尝试过),我真的认为除了重新安装 Python 之外,您没有其他可以尝试的方法。 NumPy 1.20 和对 C API 的更改导致了这个问题,可能是每次您尝试这些解决方案时都潜伏在您的安装中。

    或者,您可以使用pyenv 或 anaconda 之类的工具创建一个新的 Python 安装/环境,这样它就不会破坏您现有的安装,并且您可以尝试在这个新安装中只安装最低限度(即只是 HDBSCAN。)

    【讨论】:

    • 请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。
    猜你喜欢
    • 2021-05-09
    • 2021-06-05
    • 2021-05-22
    • 2021-05-17
    • 2021-06-14
    • 2022-01-18
    • 2021-07-06
    • 2020-06-04
    • 2018-12-31
    相关资源
    最近更新 更多