ModuleNotFoundError: в конвейере машинного обучения Azure нет модуля с именем keras.

Я пытаюсь получить простой конвейер машинного обучения Azure с набором данных "собаки против кошек", выполнив следующие действия: задокументировано здесь

В моей записной книжке есть следующее -

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.

Правильно ли я настраиваю среду? Что не так


person ashisa    schedule 03.10.2019    source источник


Ответы (1)


Судя по тому, как вы указали свою среду, трудно понять, является ли она правильным объектом 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, как в шаге «Укажите среду для запуска сценария» в этой записной книжке:

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

person Keller    schedule 03.10.2019