【问题标题】:Include additional files during model deployment (part 2)在模型部署期间包含其他文件(第 2 部分)
【发布时间】:2021-10-06 23:43:13
【问题描述】:

由于我们不应该对已回答的问题提出问题,因此我将在此处发布此附加问题。它引用了此处找到的问题/答案:Azure ML: Include additional files during model deployment

问题:在我的评分脚本中,我需要在调用模型之前引用文件中的数据以进行额外的数据处理。

该链接中引用的选项 #2(使用 InferenceConfig 将文件夹指定为源目录)似乎是我需要的。但是,当我尝试访问评分脚本中包含的文件时,我收到一条错误消息,指出该文件不存在。我相信我做错了什么,但我不确定是什么。

我的工作完全在 Azure ML Studio 中进行。
我有一个目录,可以在其中找到我的评分脚本和我想要包含的 pickle 文件。 这也是 Jupyter Notebook 脚本推动这些东西的创建的地方。 路径看起来像这样:Users->myname->myfolder

评分脚本名为 score.py。 pickle 文件是 mypickle.pkl。

score.py 中用于读取文件的代码。此代码可在 run() 方法中找到。

filename="./mypickle.pkl"
df = pd.read_pickle(filename)

InferenceConfig 调用:

inference_config = InferenceConfig(
environment=environment,
source_directory="./",
entry_script="./score.py"
)

模型部署良好,但在测试已部署模型(又名端点)时,我收到错误消息 "[Errno 2] 没有这样的文件或目录:'mypickle.pkl'"

想法?

【问题讨论】:

    标签: azureml


    【解决方案1】:

    FWIW,我在浏览模型部署创建的容器(在 Azure 门户中)时找到了答案。

    有一个值 AZUREML_SOURCE_DIRECTORY,其中包含存储 source_directory 文件的路径。

    所以不要在评分脚本中使用此代码

    filename="./mypickle.pkl"
    df = pd.read_pickle(filename)
    

    应该是这段代码。

    path = os.getenv('AZUREML_SOURCE_DIRECTORY') 
    filename = os.path.join(path, 'mypickle.pkl')
    df = pd.read_pickle(filename)
    

    【讨论】:

      猜你喜欢
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2017-10-26
      相关资源
      最近更新 更多