Azure ML部署端点时init函数无法访问模型路径求助
问题解决:Azure ML部署YOLO模型时FileNotFoundError
问题根源
部署容器中,registered_model.path返回的是Azure ML云端的模型引用路径(格式为azureml:/...),而YOLO框架只能读取本地文件系统的路径,无法直接识别云端路径,因此抛出找不到文件的错误。
解决方案
部署时,Azure ML会自动将模型下载到容器本地,并设置**AZUREML_MODEL_DIR**环境变量,该变量指向模型在容器内的存放目录(路径格式:./azureml-models/$MODEL_NAME/$VERSION)。我们需要通过这个环境变量拼接出本地模型文件的完整路径。
修改后的init函数代码
from ultralytics import YOLO import os import logging def init(): global model # 获取容器内模型的本地根目录 model_root = os.getenv("AZUREML_MODEL_DIR") # 拼接模型文件的完整本地路径 model_path = os.path.join(model_root, "model.pt") # 加载YOLO模型 model = YOLO(model_path) logging.info("Init complete") init()
额外注意事项
- 确保注册模型时使用的文件名(
model.pt)和代码中拼接的文件名完全一致 - 部署配置中需正确关联已注册的模型,确保容器启动时模型被正确下载到本地
内容的提问来源于stack exchange,提问作者default_settings
相关产品推荐
相关产品推荐

