ModuleNotFoundError: ни один модуль с именем «keras» в Azure ML Pipeline - PullRequest
0 голосов
/ 03 октября 2019

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

Моя записная книжка содержит следующее -

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.

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

1 Ответ

0 голосов
/ 03 октября 2019

Судя по тому, как вы указали свою среду, трудно понять, является ли это правильным объектом 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

...