2

我在所有 AML 工作区中使用共享存储帐户。我在每个工作区上注册此存储帐户,并在针对 AML 计算时使用它来共享数据和库。要安装一个私有的python wheel,我们目前必须在本地下载包并使用Environment.add_private_pip_wheel上传它并检索包的远程url。我想知道是否有办法在共享存储帐户中传递对包的引用,而不必将其移动到默认工作区存储帐户。

我试图将pip_packages 依赖参数中的完整 blob url(例如https://mystorageaccount.blob.core.windows.net/mypackage.whl )传递给 TensorFlow 估计器类,但实验执行失败并出现 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 返回错误

4

1 回答 1

0

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

于 2019-08-15T14:38:14.500 回答