首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure表单识别器训练找不到数据

Azure表单识别器训练找不到数据
EN

Stack Overflow用户
提问于 2020-01-22 00:44:26
回答 7查看 1.5K关注 0票数 0

我正在尝试使用浏览器API控制台(https://eastus.dev.cognitive.microsoft.com/docs/services/form-recognizer-api/operations/TrainCustomModel/console)训练一个表单识别器。我已经将训练图像上传到一个容器,并创建了一个SAS。浏览器API控制台生成以下HTTP请求:

代码语言:javascript
复制
POST https://eastus.api.cognitive.microsoft.com/formrecognizer/v1.0-preview/custom/train?source=https://pythonimages.blob.core.windows.net/?sv=2019-02-02&ss=bfqt&srt=sco&sp=rl&se=2020-01-22T00:23:33Z&st=2020-01-21T16:23:33Z&spr=https&sig=••••••••••••••••••••••••••••••••&prefix=images HTTP/1.1
Host: eastus.api.cognitive.microsoft.com
Content-Type: application/json
Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••

{
  "source": "string",
  "sourceFilter": {
    "prefix": "string",
    "includeSubFolders": true
  }
}

然而,我得到的答案是

代码语言:javascript
复制
Transfer-Encoding: chunked
x-envoy-upstream-service-time: 4
apim-request-id: 5ad37aa2-e251-4b61-98ae-023930b47d27
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Date: Tue, 21 Jan 2020 16:25:03 GMT
Content-Type: application/json; charset=utf-8

{
  "error": {
    "code": "1004",
    "message": "Dataset path must be relative to local input mount path '/input' if local data is referenced."
  }
}

我不明白为什么它看起来像是在本地寻找数据。我已经尝试过SAS,例如在blob http地址中包含容器名称(图像),而不是作为查询参数,但到目前为止还没有成功。

我还尝试了Python/REST路径(在这里描述:https://docs.microsoft.com/en-gb/azure/cognitive-services/form-recognizer/quickstarts/python-train-extract-v1),这会导致不同的错误:

代码语言:javascript
复制
Response status code: 408
Response body: {'error': {'code': '1011', 'innerError': {'requestId': 'e7f9ef9f-97bc-4b6a-86f3-0b29c9591c87'}, 'message': 'The operation exceeded allowed time limit and was canceled. The common reasons are that the data source is too large or contains unsupported content. Please check that your request conforms to service limits and retry with redacted data source.'}}

为了完整起见,我使用的代码如下(key/ code *ed:)

代码语言:javascript
复制
########### Python Form Recognizer Train #############
from requests import post as http_post

# Endpoint URL
base_url = r"https://markusformsrecognizer.cognitiveservices.azure.com/" + "/formrecognizer/v1.0-preview/custom"
source = r"https://pythonimages.blob.core.windows.net/images?sv=2019-02-02&ss=bfqt&srt=sco&sp=rl&se=2020-01-22T15:37:26Z&st=2020-01-22T07:37:26Z&spr=https&sig=*********************************"
headers = {
    # Request headers
    'Content-Type': 'application/json',
    'Ocp-Apim-Subscription-Key': '*********************************'
}
url = base_url + "/train" 
body = {"source": source}
try:
    resp = http_post(url = url, json = body, headers = headers)
    print("Response status code: %d" % resp.status_code)
    print("Response body: %s" % resp.json())
except Exception as e:
    print(str(e))
EN

回答 7

Stack Overflow用户

发布于 2020-02-06 03:11:56

@Markus

你得到这个问题的简单答案了吗?我的请求适用于V1端点,但不适用于V2。为“Source”生成SAS URI不起作用。我一直收到400 Bad Request: Error 1004。“参数'Source‘不是有效路径。”

仅供参考:我一直在测试这个:https://westus2.dev.cognitive.microsoft.com/docs/services/form-recognizer-api-v2-preview/operations/TrainCustomModelAsync/console

还有邮差。

票数 1
EN

Stack Overflow用户

发布于 2020-01-22 18:20:23

对于错误代码1004,请按照下面的说明获取包含训练文档的源路径,并将值作为值传递给源键。

代码语言:javascript
复制
{
  "source": "string",
  "sourceFilter": {
    "prefix": "string",
    "includeSubFolders": true
  }
}

替换为Azure Blob存储容器的共享访问签名(SAS) URL。要检索SAS URL,请打开Microsoft Azure Storage Explorer,右键单击您的容器,然后选择Get shared access signature。确保选中Read和List权限,然后单击Create。然后复制URL部分中的值。其格式应为:https://.blob.core.windows.net/container名称?SAS值。

票数 0
EN

Stack Overflow用户

发布于 2020-01-23 06:45:20

请使用新的Form Recognizer v2.0版本,它是一个异步API,支持大型数据集和分析大型文档的培训。https://aka.ms/form-recognizer/api快速入门- https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/quickstarts/python-train-extract

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59845659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档