Azure自定义视觉Python SDK detect_image调用报Unauthorized错误
你已经完成图像上传、模型训练、模型发布流程的前提下,调用检测接口抛出未授权错误,按以下优先级逐一排查:
- 第一优先级:区分训练密钥和预测密钥
Custom Vision的训练、预测环节用两套完全独立的鉴权密钥,混用是这个报错最常见的原因:- 训练密钥:仅支持上传数据集、触发训练、发布模型等管理操作,你之前流程跑通仅能证明这个密钥配置正确
- 预测密钥:仅用于调用已发布模型的推理接口,需要到Custom Vision门户的预测资源页面单独复制,初始化
Predictor客户端时必须填这个密钥,不能填训练密钥
注意:训练密钥和预测密钥绝对不能混用
- 第二优先级:核对端点、发布名参数正确性
- 初始化预测客户端用的端点不能填训练资源的端点,必须填对应预测资源的端点,格式一般为
https://<你的预测资源名称>.cognitiveservices.azure.com/ - 调用
detect_image时传入的发布迭代名参数,必须和门户上模型发布时填写的名称完全一致,大小写敏感,多余空格、字符错漏都会触发鉴权失败
- 初始化预测客户端用的端点不能填训练资源的端点,必须填对应预测资源的端点,格式一般为
- 第三优先级:确认资源绑定和发布状态
- 检查模型发布时绑定的预测资源,和你取密钥、端点的预测资源是同一个,跨资源拿密钥调用必然报401
- 如果是刚点完发布就调用,可能存在云端权限同步延迟,等待1-2分钟后重试即可
- 第四优先级:修复SDK版本兼容问题
以上配置全部核对无误仍报错的话,大概率是SDK版本过旧存在鉴权请求头拼接bug,执行以下命令重装稳定版SDK即可:pip install --upgrade azure-cognitiveservices-vision-customvision==3.1.0
内容的提问来源于stack exchange,提问作者Pavan 0713
相关产品推荐
相关产品推荐

