表单识别器无效的模型状态

时间:2020-02-06 08:35:29

标签: form-recognizer

我们尝试了以下步骤(API 2.0)的Form Recognizer自定义培训

https://pnagarjuna.wordpress.com/2020/01/07/azure-form-recognizer-service-custom-model-training-steps/

培训模型成功(201),但是在检查自定义模型状态后,我们收到了此错误

{  "modelInfo": {    "modelId": "f17bd306-3c6a-4067-8ef1-5f2e6ced79e1",    "status": "invalid",    "createdDateTime": "2020-02-05T17:24:30Z",    "lastUpdatedDateTime": "2020-02-05T17:24:31Z"  },  "trainResult": {    "trainingDocuments": [],    "errors": [{      "code": "2014",      "message": "No valid blobs found in the specified Azure blob container. Please conform to the document format/size/page/dimensions requirements."    }]  }}
We also check 

https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/overview#custom-model 一切都很好。

怎么走?

谢谢!

Gabor

5 个答案:

答案 0 :(得分:0)

您能检查一下火车请求中的前缀值是否与您的Azure Blob容器中的路径一致?如果将示例文件放在blob容器的根路径下,请给一个空字符串作为前缀。由于训练和训练后的模型请求在表单识别器v2.0中是异步的,因此某些与请求后参数相关的错误只能通过训练后的模型请求来获取。

答案 1 :(得分:0)

@Nini,

您能提供一个前缀值示例吗?

我和作者一样面临同样的问题。

我使用2.0 API版本。 我为整个容器生成了SAS,我使用下一个请求来训练自定义模型

{
  "source": "https://{resourcename}.blob.core.windows.net/{containername}?sp=rl&st=2020-02-13T11:19:53Z&se=2021-02-14T11:19:00Z&sv=2019-02-02&sr=c&sig={signature}",
  "sourceFilter": {
    "prefix": "/USMF/VendorInvoices/Vendor - 1001/",
    "includeSubFolders": false
  },
  "useLabelFile": false
}

目标文件夹URI: https:// {resourcename} .blob.core.windows.net / {容器名称} / USMF / VendorInvoices / Vendor-1001 /

响应正文:

{
  "modelInfo": {
    "modelId": "4e23f488-d8db-4c98-8018-4cd337d9a655",
    "status": "invalid",
    "createdDateTime": "2020-02-13T12:07:52Z",
    "lastUpdatedDateTime": "2020-02-13T12:07:52Z"
  },
  "keys": {
    "clusters": {}
  },
  "trainResult": {
    "trainingDocuments": [],
    "errors": [{
      "code": "2014",
      "message": "No valid blobs found in the specified Azure blob container. Please conform to the document format/size/page/dimensions requirements."
    }]
  }
}

如果我将训练数据集保留在根目录下,因此前缀值为空字符串,那么一切正常。

答案 2 :(得分:0)

感谢您举报。 您是否有可能从策略定义的SAS令牌(一个带有sig = {signature}的令牌)切换到具有显式权限的sas令牌? (其中一个带有sp = {permissionenum})

答案 3 :(得分:0)

您能详细解释您的想法吗?

这就是我所做的。

我在不应用任何访问策略的情况下生成了SAS令牌。为整个容器生成SAS。我只是从列表和到期日期中选择“读取,列出权限”。 SAS settings

我很想知道,如果我将训练数据集保留在根文件夹下,那么一切正常。但是,当我将文件放在文件夹结构下时,表单识别器服务找不到这些文件。

答案 4 :(得分:0)

问题已解决。

这绝对不是服务问题。

首先,我的前缀开头不应包含“ /”符号。 另一个要点是前缀是区分大小写的。 就我而言,我已上传带有“ USMF / VendorInvoices / Vendor-1001 /”前缀的文件,但请求使用“ usmf / VendorInvoices / Vendor-1001 /”进行模型训练。因此,这导致了错误消息-在指定的Azure Blob容器中找不到有效的Blob。请符合文件格式/大小/页面/尺寸要求。