如何为AzureML InferenceConfig类添加非同级目录的JSON额外文件?
解决方法
你可以通过以下两种方式实现将不同目录下的JSON文件包含到InferenceConfig中:
方法1:统一指定source_directory并调整路径
InferenceConfig的source_directory参数会将指定目录下的所有文件打包为推理环境的依赖包,操作步骤如下:
- 选择一个同时包含
score.py和JSON文件的父目录作为source_directory - 将
entry_script设置为该父目录下指向score.py的相对路径 - 在
score.py中使用相对于该父目录的路径读取JSON文件
示例代码:
假设目录结构如下:
project_root/ ├── scripts/ │ └── score.py └── configs/ └── config.json
则代码可修改为:
inf_conf = InferenceConfig( source_directory="./project_root", entry_script="scripts/score.py", environment=environment )
在score.py中读取JSON的代码:
import json with open("./configs/config.json", "r") as f: config = json.load(f)
方法2:手动复制JSON文件到score.py所在目录
如果不想调整source_directory,可在创建InferenceConfig前,将JSON文件复制到score.py的目录下,这样默认的source_directory(即score.py所在目录)会自动包含该文件。
用Python的shutil模块实现自动复制的示例:
import shutil # 复制JSON文件到score.py所在目录 shutil.copy("/path/to/your/config.json", "/path/to/score.py/directory/") # 创建InferenceConfig inf_conf = InferenceConfig(entry_script="score.py", environment=environment)
内容的提问来源于stack exchange,提问作者Ross
相关产品推荐
相关产品推荐

