

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 偵錯失敗的模型訓練
<a name="tm-debugging"></a>

您可能會在模型訓練期間遇到錯誤。Amazon Rekognition 自訂標籤會在主控台以及 [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions) 的回應中回報訓練錯誤。

錯誤可能是終端 (訓練無法繼續)，或者是非終端 (訓練可以繼續)。如需與訓練和測試資料集內容相關的錯誤，您可以下載驗證結果 ([清單檔案摘要](tm-debugging-summary.md)以及[訓練與測試驗證清單檔案](tm-debugging-scope-json-line.md))。使用驗證結果中的錯誤代碼來尋找本區段中的進一步資訊。本區段還會提供清單檔案錯誤 (在驗證清單檔案內容之前發生的終端錯誤) 的資訊。

**注意**  
清單檔案是用於存放資料集內容的檔案。

您可以使用 Amazon Rekognition 自訂標籤主控台修正一些錯誤。其他錯誤則可能需要您更新訓練或測試清單檔案。您可能需要進行其他變更，例如 IAM 權限。如需詳細資訊，請參閱個別錯誤的文件。

## 終端錯誤
<a name="tm-error-categories-terminal"></a>

終端錯誤會停止模型的訓練。終端訓練錯誤有 3 種類別 — 服務錯誤、清單檔案錯誤和清單檔案內容錯誤。

在主控台中，Amazon Rekognition 自訂標籤會在專案頁面的**狀態訊息**欄中顯示模型的終端錯誤。專案管理儀表板會顯示專案清單，其中包含名稱、版本、建立日期、模型效能，以及指出模型狀態的狀態訊息，例如訓練已完成或失敗

![\[專案管理儀表板的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/rekognition/latest/customlabels-dg/images/terminal-errors.png)


如果您使用 AWS SDK，您可以檢查 [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions) 的回應，以查明是否已發生終端機資訊清單檔案錯誤或終端機資訊清單內容錯誤。在此情況下，`Status` 值為 `TRAINING_FAILED`，而 `StatusMessage` 欄位會包含錯誤。

### 服務錯誤
<a name="tm-error-category-service"></a>

當 Amazon Rekognition 遇到服務問題且無法繼續訓練時，就會發生終端服務錯誤。例如，Amazon Rekognition 自訂標籤所依賴之另一項服務的失敗。*Amazon Rekognition 遇到服務問題*時，Amazon Rekognition 自訂標籤會在主控台中回報服務錯誤。如果您使用 AWS SDK，[CreateProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProjectVersion) 和 [DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions) 會將訓練期間發生的服務錯誤引發為`InternalServerError`例外狀況。

如果發生服務錯誤，請重試模型的訓練。如果訓練持續失敗，請聯絡 *[AWS Support](https://aws.amazon.com/premiumsupport/)*，並包含任何回報為服務錯誤的錯誤資訊。

### 終端機資訊清單檔案錯誤清單
<a name="tm-error-category-terminal"></a>

清單檔案錯誤指在訓練和測試資料集中發生在檔案層級或跨多個檔案的終端錯誤。在驗證訓練和測試資料集的內容之前，即會偵測到清單檔案錯誤。清單檔案錯誤會防止回報[非終端驗證錯誤](#tm-error-category-non-terminal-errors)。例如，空白的訓練清單檔案會產生*清單檔案空白*的錯誤。由於檔案空白，因此無法回報非終端 JSON Line 驗證錯誤。清單檔案摘要也不會建立。

您必須先修正清單檔案錯誤，才能訓練模型。

以下列出清單檔案錯誤。
+ [清單檔案副檔名或內容無效。](tm-terminal-errors-reference.md#tm-error-message-ERROR_MANIFEST_INACCESSIBLE_OR_UNSUPPORTED_FORMAT)
+ [清單檔案空白。](tm-terminal-errors-reference.md#tm-error-message-ERROR_EMPTY_MANIFEST)
+ [清單檔案大小超過支援的大小上限。](tm-terminal-errors-reference.md#tm-error-message-ERROR_MANIFEST_SIZE_TOO_LARGE)
+ [無法寫入至輸出 S3 儲存貯體。](tm-terminal-errors-reference.md#tm-error-message-ERROR_CANNOT_WRITE_OUTPUT_S3_BUCKET)
+ [S3 儲存貯體權限不正確。](tm-terminal-errors-reference.md#tm-error-message-ERROR_INVALID_PERMISSIONS_MANIFEST_S3_BUCKET)

### 終端機資訊清單內容錯誤清單
<a name="tm-error-category-combined-terminal"></a>

清單檔案內容錯誤指和清單檔案中的內容相關的終端錯誤。例如，如果您收到錯誤[清單檔案中每個標籤所包含的標籤影像不足以執行自動分割](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_INSUFFICIENT_IMAGES_PER_LABEL_FOR_AUTOSPLIT)，訓練即無法完成，因為訓練資料集中沒有足夠的已標記影像，因此無法建立測試資料集。

除了在主控台和 `DescribeProjectVersions` 的回應中回報之外，在清單檔案摘要中也能回報該錯誤以及任何其他終端清單檔案內容錯誤。如需詳細資訊，請參閱[了解清單檔案摘要](tm-debugging-summary.md)。

非終端 JSON Line 錯誤也會在單獨的訓練和測試驗證結果清單檔案中回報。Amazon Rekognition 自訂標籤所找到的非終端 JSON Line 錯誤不一定會和停止訓練的清單檔案內容錯誤有關。如需詳細資訊，請參閱[了解培訓和測試驗證結果清單檔案](tm-debugging-scope-json-line.md)。

您必須先修正清單檔案內容錯誤，才能訓練模型。

以下是清單檔案內容錯誤的錯誤訊息。
+ [清單檔案包含太多無效資料列。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_TOO_MANY_INVALID_ROWS_IN_MANIFEST)
+ [清單檔案包含來自多個 S3 儲存貯體的影像。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_IMAGES_IN_MULTIPLE_S3_BUCKETS)
+ [影像 S3 儲存貯體的擁有者 ID 無效。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_INVALID_IMAGES_S3_BUCKET_OWNER)
+ [清單檔案中每個標籤所包含的已標記影像不足以執行自動分割。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_INSUFFICIENT_IMAGES_PER_LABEL_FOR_AUTOSPLIT)
+ [清單檔案的標籤太少。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_MANIFEST_TOO_FEW_LABELS)
+ [清單檔案的標籤太多。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_MANIFEST_TOO_MANY_LABELS)
+ [訓練和測試清單檔案之間的標籤重疊小於 \$1\$1%。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_INSUFFICIENT_LABEL_OVERLAP)
+ [清單檔案可用標籤太少。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_MANIFEST_TOO_FEW_USABLE_LABELS)
+ [訓練和測試清單檔案之間的可用標籤重疊小於 \$1\$1%。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_INSUFFICIENT_USABLE_LABEL_OVERLAP)
+ [無法從 S3 儲存貯體複製影像。](tm-debugging-aggregate-errors.md#tm-error-message-ERROR_FAILED_IMAGES_S3_COPY)

## 非終端 JSON 行驗證錯誤的清單
<a name="tm-error-category-non-terminal-errors"></a>

JSON Line 驗證錯誤是非終端錯誤，不需要 Amazon Rekognition 自訂標籤即可停止訓練模型。

JSON Line 驗證錯誤不會在主控台中顯示。

在訓練和測試資料集中，JSON Line 代表單一影像的訓練或測試資訊。JSON Line 中的驗證錯誤 (例如無效的影像) 會在訓練和測試驗證清單檔案中回報。Amazon Rekognition 自訂標籤會使用清單檔案中的其他有效 JSON Lines 完成訓練。如需詳細資訊，請參閱[了解培訓和測試驗證結果清單檔案](tm-debugging-scope-json-line.md)。如需驗證規則的資訊，請參閱 [清單檔案的驗證規則](md-create-manifest-file-validation-rules.md)。

**注意**  
如果 JSON Line 錯誤太多，則訓練會失敗。

我們建議您也修正非終端 JSON Line 錯誤，因為這些錯誤可能會造成未來錯誤或影響您的模型訓練。

Amazon Rekognition 自訂標籤可能產生下列非終端 JSON Line 驗證錯誤。
+ [缺少 source-ref 金鑰。](tm-debugging-json-line-errors.md#tm-error-ERROR_MISSING_SOURCE_REF)
+ [source-ref 值的格式無效。](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_SOURCE_REF_FORMAT)
+ [找不到標籤屬性。](tm-debugging-json-line-errors.md#tm-error-ERROR_NO_LABEL_ATTRIBUTES)
+ [標籤屬性 \$1\$1 的格式無效。](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_LABEL_ATTRIBUTE_FORMAT)
+ [標籤 attributemetadata 的格式無效。](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_LABEL_ATTRIBUTE_METADATA_FORMAT)
+ [找不到有效的標籤屬性。](tm-debugging-json-line-errors.md#tm-error-ERROR_NO_VALID_LABEL_ATTRIBUTES)
+ [一或多個週框方塊缺少可信度值。](tm-debugging-json-line-errors.md#tm-error-ERROR_MISSING_BOUNDING_BOX_CONFIDENCE)
+ [類別對應中缺少一或多個類別 ID。](tm-debugging-json-line-errors.md#tm-error-ERROR_MISSING_CLASS_MAP_ID)
+ [JSON Line 的格式無效。](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_JSON_LINE)
+ [影像無效。檢查 S3 路徑和/或影像屬性。](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_IMAGE)
+ [週框方塊具有離框值。](tm-debugging-json-line-errors.md#tm-error-ERROR_INVALID_BOUNDING_BOX)
+ [週框方塊的高度和寬度太小。](tm-debugging-json-line-errors.md#tm-error-ERROR_BOUNDING_BOX_TOO_SMALL)
+ [週框方塊超過允許的最大值。](tm-debugging-json-line-errors.md#tm-error-ERROR_TOO_MANY_BOUNDING_BOXES)
+ [找不到有效的註釋。](tm-debugging-json-line-errors.md#tm-error-ERROR_NO_VALID_ANNOTATIONS)