我在所有AML工作区中使用共享存储帐户。我在每个工作区上注册了该存储帐户,并在针对AML计算时使用它来共享数据和库。要安装专用python wheel,我们当前必须在本地下载该软件包,并使用Environment.add_private_pip_wheel上载它并检索该软件包的远程URL。我想知道是否有一种方法可以将引用传递给共享存储帐户中的程序包,而不必将其移至默认的工作区存储帐户。

我试图将pip_packages依赖项参数中的完整blob url(例如https://mystorageaccount.blob.core.windows.net/mypackage.whl)传递给TensorFlow estimator类,但实验执行失败并出现404错误:url https://mystorageaccount.blob.core.windows.net/mypackage.whl所指定的资源不存在

from azureml.train.dnn import TensorFlow
from azureml.core.runconfig import MpiConfiguration

project_folder = "./myproject"

dependencies = ["https://mystorageaccount.blob.core.windows.net/mypackage.whl"]

script_params={
  "--data_dir":data_dir.as_mount(),
  "--output_dir":output_data.as_mount(),
  "--do_train":"True",
  "--do_eval":"False",
  "--do_predict":"False",
}

mpiConfig = MpiConfiguration()
mpiConfig.process_count_per_node = 1
estimator= TensorFlow(source_directory=project_folder,
                      compute_target=compute_target,
                      script_params=script_params,
                      entry_script='./train_classifier.py',
                      node_count=1,
                      distributed_training=mpiConfig,
                      pip_packages=dependencies,
                      framework_version='1.13',
                      use_gpu=True)


由于该存储帐户已在工作空间中注册,因此我希望能够(使用上面的代码)直接从共享存储帐户将私有软件包安装到AML计算中,而不必在本地下载它,然后调用Environment.add_private_pip_wheel函数。

相反,我收到以下错误,实验失败:

(来自-r /azureml-environment-setup/condaenv.kc80np3o.requirements.txt(第1行)),由于HTTP错误404客户端错误:指定的资源不存在。网址:https://mystorageaccount.blob.core.windows.net/mypackage.whl ...

CondaValueError:pip返回错误

最佳答案

如果不想让存储帐户公开,则可以为whl包创建一个SAS URL,然后将其传递给pip依赖项。然后该服务应该能够访问该程序包。

关于python - 从存储帐户安装私有(private)python wheel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57503710/

10-12 19:35