ModuleNotFoundError: No module named 'keras' in Azure ML Pipeline

ModuleNotFoundError: No module named 'keras' in Azure ML Pipeline

我正在尝试按照以下步骤使用猫狗数据集获得一个简单的 Azure ML 管道 - documented here

我的笔记本包含以下内容 -

import azureml.core
from azureml.core import Workspace, Datastore
from azureml.core import Environment
from azureml.core.environment import CondaDependencies
from azureml.pipeline.steps import PythonScriptStep

ws = Workspace.from_config()

myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("keras")
conda_dep.add_conda_package("PIL")
myenv.python.conda_dependencies=conda_dep
myenv.register(workspace=ws)

设置数据引用和计算后,下面是我创建管道的方式 -

trainStep = PythonScriptStep(
    script_name="dogs_vs_cats.py",
    arguments=["--input", blob_input_data, "--output", output_data1],
    inputs=[blob_input_data],
    outputs=[output_data1],
    compute_target=compute_target,
    source_directory="../dogs-vs-cats"
)

Steps = [trainStep]

from azureml.pipeline.core import Pipeline
pipeline1 = Pipeline(workspace=ws, steps=[Steps])

from azureml.core import Experiment

pipeline_run1 = Experiment(ws, 'dogs_vs_cats_exp').submit(pipeline1)
pipeline_run1.wait_for_completion()

执行完这一步后,实验失败,查了一堆信息后报了如下错误-

Traceback (most recent call last):
  File "dogs_vs_cats.py", line 30, in <module>
    import keras
ModuleNotFoundError: No module named 'keras'

终端显示我的 conda 环境设置为 azureml_py36,Keras 似乎列在 conda list 的输出中。

我是否正确设置了环境?缺少什么

从您指定环境的方式来看,很难看出它是否是正确的 RunConfiguration 对象。如果是的话,应该是给你添加PythonScriptStep了。

trainStep = PythonScriptStep(
    script_name="dogs_vs_cats.py",
    arguments=["--input", blob_input_data, "--output", output_data1],
    inputs=[blob_input_data],
    outputs=[output_data1],
    compute_target=compute_target,
    source_directory="../dogs-vs-cats",
    runconfig=myenv
)

现在您正在定义环境,但似乎没有在任何地方使用它。如果您的问题仍然存在,可以尝试定义您的 RunConfiguration,就像他们在本笔记本中的 "Specify the environment to run the script" 步骤下所做的那样:

https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/pipeline-batch-scoring/pipeline-batch-scoring.ipynb