【问题标题】:No Library cv2 on AzureMLAzureML 上没有库 cv2
【发布时间】:2019-07-16 07:01:07
【问题描述】:

我正在尝试学习 AzureML sdk 并在云上训练我的模型。

我成功训练了位于here的演示项目。

现在,我想训练自己的模型,但出现错误:

UserError","message":"No module named 'cv2'","target":null,"details":[],"innerErro...

这意味着 cv2 没有安装在 AzureML 上,我在我的训练脚本中使用它,...

如何在 AzureML 上 pip 安装库,或者如何将虚拟环境“复制”到我的工作区

【问题讨论】:

    标签: azure keras pip artificial-intelligence


    【解决方案1】:

    答案是添加opencv-python-headless作为pip安装 像这样:

    TensorFlow(source_directory=script_folder,
                    script_params=script_params,
                    compute_target=compute_target,
                    entry_script=train_script_name,
                    pip_packages=['opencv-python-headless', 'scikit-image', 'mathematics', 'keras', 'scikit-learn'],
                    use_gpu=True)
    

    【讨论】:

    • 谢谢。这对我有用,因为我在尝试在 python 中导入 cv2 时遇到以下错误:ImportError: libGL.so.1: cannot open shared object file: No such file or directory
    【解决方案2】:

    我假设您的意思是您正在使用 Azure ML 托管计算进行培训?!如果是这样,您需要在 Conda 依赖项文件中指定所有必需的包。请参阅此处获取指导:https://docs.microsoft.com/sl-si/azure/machine-learning/service/how-to-set-up-training-targets#system-managed-environment

    当您希望 Conda 管理 为您提供 Python 环境和脚本依赖项。一种 默认情况下假定系统管理的环境是最常见的 选择。它对远程计算目标很有用,尤其是当您 无法配置该目标。

    您需要做的就是使用 CondaDependency 类 然后 Conda 创建一个名为 conda_dependencies.yml 在您工作区的 aml_config 目录中 使用您的软件包依赖项列表并设置您的 Python 提交训练实验时的环境。

    或者,如果您使用估算器并且只需要几个包,您也可以直接指定它们:

    estimator = SKLearn(source_directory=project_folder, 
                    script_params=script_params,
                    compute_target=compute_target,
                    entry_script='train_iris.py'
                    pip_packages=['joblib']
                   )
    

    https://docs.microsoft.com/en-Us/azure/machine-learning/service/how-to-train-scikit-learn#create-a-scikit-learn-estimator

    【讨论】:

    • 您好,谢谢。我使用SKLearn。我添加 pip_packages=['opencv'] ,现在我收到错误:Collecting opencv (from -r /azureml-setup/condaenv.p5_1v_zd.requirements.txt (line 1)) [91m ERROR: Could not find a version that satisfies要求 opencv(来自 -r /azureml-setup/condaenv.p5_1v_zd.requirements.txt(第 1 行))(来自版本:无)
    • 看起来这个包叫opencv-pythonpypi.org/project/opencv-python
    • 好的,现在它通过了,但之后出现错误:文件“train.py”,第 5 行,在 中导入 cv2 文件“/azureml-envs/azureml_62431a64abe69dd83df2462885045150/lib/python3.6/ site-packages/cv2/__init__.py",第 3 行,在 from .cv2 import * ImportError: libSM.so.6: cannot open shared object file: No such file or directory
    • 您的 train.py 在本地环境中使用 python 3.6 运行良好吗?
    • 是的,确实如此,...问题似乎与 cv2 的导入有关,...虽然 pip 安装正常。
    猜你喜欢
    • 2020-06-04
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 2021-02-22
    • 2019-08-17
    • 2019-09-14
    相关资源
    最近更新 更多