使用sklearn-1.5:10环境部署Azure ML模型时出现Numpy依赖错误

问题描述 投票:0回答:1

我正在使用 sklearn-1.5(版本 10)环境来部署使用 sklearn.ensemble._forest.RandomForestClassifier 的 ML 模型。部署端点时,我不断遇到 numpy 的依赖问题。

我特别收到以下错误:

ValueError: numpy.dtype size changed, may indicate binary incompatibility. 
Expected 96 from C header, got 88 from PyObject

我该如何解决这个问题?

我尝试使用 pip 在 train.py 代码中强制安装正确的包(如环境中指定的):

subprocess.check_call([sys.executable, "-m", "pip", "install", 
                       "numpy==1.22.0", 
                       "pandas==1.5.3", 
                       "scipy==1.8.0", 
                       "matplotlib==3.5.3", 
                       "scikit-image==0.19.3", 
                       "contourpy==1.0.7", 
                       "azure-storage-blob==12.19.0", 
                       "--force-reinstall"])

但这没有什么区别。

azure scikit-learn deployment endpoint ml-studio
1个回答
0
投票

以下是解决所面临问题所需的一些东西。

  1. 使用 numpy 版本
    1.26.4
    并且不要在您的环境中更新它。
pip install numpy==1.26.4
  1. 如果上述不起作用,则卸载并安装
    scipy
    scikit-learn
    (不带二进制文件),因为安装的软件包是针对不同版本的
    numpy
    构建的。

因此,您需要针对本地

scipy
重建
scikit-learn
numpy

pip uninstall -y scipy scikit-learn
pip install --no-binary scipy scikit-learn

在您的情况下,使用

subprocess
运行这些命令。

请参阅此 堆栈解决方案 了解更多信息。

如果您仍然面临这个问题,

检查

scikit-learn
numpy
和其他依赖项之间的兼容性,并更新环境以匹配兼容版本。

© www.soinside.com 2019 - 2024. All rights reserved.