我正在尝试遵循Python教程,并且几乎可以执行所有操作,直到使用python将终结点部署到Azure为止。
为了提供一些上下文,我已将脚本上传到我的git帐户: https://github.com/levalencia/MLTutorial
文件1和2正常工作
但是,文件3中的以下部分失败:
%%time
from azureml.core.webservice import Webservice
from azureml.core.model import InferenceConfig
inference_config = InferenceConfig(runtime= "python",
entry_script="score.py",
conda_file="myenv.yml")
service = Model.deploy(workspace=ws,
name='keras-mnist-svc2',
models=[amlModel],
inference_config=inference_config,
deployment_config=aciconfig)
service.wait_for_deployment(show_output=True)
出现以下错误:
ERROR - Service deployment polling reached non-successful terminal state, current service state: Transitioning
Operation ID: 8353cad2-4218-450a-a03b-df418725acb1
More information can be found here: https://machinelearnin1143382465.blob.core.windows.net/azureml/ImageLogs/8353cad2-4218-450a-a03b-df418725acb1/build.log?sv=2018-03-28&sr=b&sig=UKzefxIrm3l7OsXxj%2FT4RsvUfAuhuaBwaz2P4mJu7vY%3D&st=2020-03-11T12%3A23%3A33Z&se=2020-03-11T20%3A28%3A33Z&sp=r
Error:
{
"code": "EnvironmentBuildFailed",
"statusCode": 400,
"message": "Failed Building the Environment."
}
ERROR - Service deployment polling reached non-successful terminal state, current service state: Transitioning
Operation ID: 8353cad2-4218-450a-a03b-df418725acb1
More information can be found here: https://machinelearnin1143382465.blob.core.windows.net/azureml/ImageLogs/8353cad2-4218-450a-a03b-df418725acb1/build.log?sv=2018-03-28&sr=b&sig=UKzefxIrm3l7OsXxj%2FT4RsvUfAuhuaBwaz2P4mJu7vY%3D&st=2020-03-11T12%3A23%3A33Z&se=2020-03-11T20%3A28%3A33Z&sp=r
Error:
{
"code": "EnvironmentBuildFailed",
"statusCode": 400,
"message": "Failed Building the Environment."
}
下载日志时,我得到了:
wheel-0.34.2 | 24 KB | | 0% [0m[91m
wheel-0.34.2 | 24 KB | ########## | 100% [0m
Downloading and Extracting Packages
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... failed
[91m
ERROR conda.core.link:_execute(502): An error occurred while installing package 'conda-forge::astor-0.7.1-py_0'.
FileNotFoundError(2, "No such file or directory: '/azureml-envs/azureml_6abde325a12ccdba9b5ba76900b99b56/bin/python3.6'")
Attempting to roll back.
[0mRolling back transaction: ...working... done
[91m
FileNotFoundError(2, "No such file or directory: '/azureml-envs/azureml_6abde325a12ccdba9b5ba76900b99b56/bin/python3.6'")
[0mThe command '/bin/sh -c ldconfig /usr/local/cuda/lib64/stubs && conda env create -p /azureml-envs/azureml_6abde325a12ccdba9b5ba76900b99b56 -f azureml-environment-setup/mutated_conda_dependencies.yml && rm -rf "$HOME/.cache/pip" && conda clean -aqy && CONDA_ROOT_DIR=$(conda info --root) && rm -rf "$CONDA_ROOT_DIR/pkgs" && find "$CONDA_ROOT_DIR" -type d -name __pycache__ -exec rm -rf {} + && ldconfig' returned a non-zero code: 1
2020/03/11 12:28:11 Container failed during run: acb_step_0. No retries remaining.
failed to run step ID: acb_step_0: exit status 1
Run ID: cb3 failed after 2m21s. Error: failed during run, err: exit status 1
更新1:
我尝试运行: 康达清单-康达名称基础
在笔记本中,我得到了:
# packages in environment at /anaconda:
#
# Name Version Build Channel
_anaconda_depends 2019.03 py37_0
anaconda custom py37_1
anaconda-client 1.7.2 py37_0
anaconda-navigator 1.9.6 py37_0
anaconda-project 0.8.4 py_0
conda 4.8.2 py37_0
conda-build 3.17.6 py37_0
conda-env 2.6.0 1
conda-package-handling 1.6.0 py37h7b6447c_0
conda-verify 3.1.1 py37_0
Note: you may need to restart the kernel to use updated packages.
但是在部署日志中我得到了:
Solving environment: ...working...
done
[91m
==> WARNING: A newer version of conda exists. <==
current version: 4.5.11
latest version: 4.8.2
Please update conda by running
$ conda update -n base -c defaults conda
答案 0 :(得分:2)
不幸的是,此版本的Conda(4.5.11)似乎存在问题。要在教程中完成此任务,您只需将Tensorflow和Keras的依赖关系更新为pip
,而不是conda
。有一些原因为什么这对于生产环境而言并不理想。 Azure ML documentation states:
“如果您的依赖项可以通过Conda和pip获得(来自 PyPi),请使用Conda版本,因为Conda软件包通常随附 预先安装的二进制文件,使安装更加可靠。”
在这种情况下,如果您更新以下代码块:
from azureml.core.conda_dependencies import CondaDependencies
myenv = CondaDependencies()
myenv.add_conda_package("tensorflow")
myenv.add_conda_package("keras")
with open("myenv.yml","w") as f:
f.write(myenv.serialize_to_string())
# Review environment file
with open("myenv.yml","r") as f:
print(f.read())
要满足以下条件:
from azureml.core.conda_dependencies import CondaDependencies
myenv = CondaDependencies()
myenv.add_pip_package("tensorflow==2.0.0")
myenv.add_pip_package("azureml-defaults")
myenv.add_pip_package("keras")
with open("myenv.yml", "w") as f:
f.write(myenv.serialize_to_string())
with open("myenv.yml", "r") as f:
print(f.read())
该教程应该可以完成。进行此更新后,让我知道这对您是否不起作用。
我还向Microsoft报告了此问题(关于Conda版本)。