如何为PyTorch Estimator指定python == 3.6.8(conda_packages不够)

时间:2019-10-16 11:36:50

标签: python pytorch conda azure-machine-learning-service

我需要使用 python = 3.6.8(不是默认的3.6.2)在Azure机器学习下运行python脚本。我正在使用AML“ PyTorch()”估算器,将“ conda_packages ” arg设置为 [“ python == 3.6.8”]

我依赖于此文档页面的PyTorch Estimator:

  

https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.dnn.pytorch?view=azure-ml-py

我的脚本运行时,我打印出“ sys.version ”,并看到它仍设置为 python 3.6.2

python: 3.6.2 | packaged by conda-forge | (default, Jul 23 2017, 22:59:30) 
[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)]

我希望看到 python 3.6.8 ,因为我在PyTorch Estimator的conda_packages arg中指定了这一点。

我还尝试将“ python == 3.6.8 ”从conda_packages移到pip_packages,但是收到一条错误消息,指出pip无法找到该软件包。

仅供参考,我在pip_packages中指定了另一个软件包,在此过程中确实可以正确安装。似乎没有使用“ conda_packages ” arg的值(我的工作的AML日志中没有提到conda或python安装错误)。

2 个答案:

答案 0 :(得分:1)

另一个选择是使用正确的python版本指定一个conda依赖文件conda_dependencies_file_path。以下文档概述了有关操作方法的详细文档。一旦指定conda_depencies_file_path,它将覆盖pip_packages和conda_packages,因此我建议将所有软件包放入conda依赖文件

https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.conda_dependencies.condadependencies?view=azure-ml-py

答案 1 :(得分:0)

提交培训作业时,Azure ML在Docker容器内的conda环境中运行脚本。 PyTorch容器安装了以下依赖项。

依赖项
PyTorch 1.0 / 1.1 / 1.2 Python 3.6.2 CUDA(仅GPU映像)10.0 cuDNN(仅GPU映像)7.6.3 NCCL(仅GPU映像)2.4.8azureml-defaults最新的OpenMpi 3.1.2 horovod 0.16.1 miniconda 4.5.11火炬1.0 / 1.1 / 1.2火炬视觉0.2。 1 git 2.7.4 tensorboard 1.14 future 0.17.1 Docker映像扩展了Ubuntu 16.04。

要安装附加依赖关系,可以使用pip_packages或conda_packages参数。或者,您可以指定 pip_requirements_file或conda_dependencies_file参数。另外,您可以构建自己的图像,然后将custom_docker_image参数传递给estimator构造函数。

我建议您更新conda_dependencies_file参数以查看其是否有效。

参考:https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-train-pytorch#create-a-pytorch-estimator