azureml - 在模型部署期间包含其他文件(第 2 部分)
问题描述
由于我们不应该对已回答的问题提出问题,因此我将在此处发布此附加问题。它引用了此处找到的问题/答案: Azure ML:在模型部署期间包含其他文件
问题:在我的评分脚本中,我需要在调用模型之前引用文件中的数据以进行额外的数据处理。
该链接中引用的选项#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] No such file or directory: 'mypickle.pkl'”
想法?
解决方案
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)
推荐阅读
- javascript - 自动登录到 wrbsite 并提取元素
- javascript - 使用 Javascript/CSS 在中间绘制带有文本的圆圈
- android - 使用相同的图像作为输入同时运行 iOS 和 Android 版本的 MLKit Text Recognition On-Device API 时的不同结果
- testng - 无法在 TestNG 中执行第二个 @Test 方法
- c# - 使用 C# 和 REST 部署 UWP 应用
- postgresql - 从一个表中删除也会从另一个表中删除
- php - 如何使用渴望在laravel中使用provinceid打印省份名称?
- php - 为什么我提交帖子时价值不想增加
- amazon-web-services - RaspberryPi AWS - 物联网证书问题
- css - 如何在 Bootstrap 4 中水平居中媒体对象的内容