

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

# 故障診斷 Ambarella 錯誤
<a name="neo-troubleshooting-target-devices-ambarella"></a>

SageMaker Neo 需要將模型封裝在壓縮的 TAR 檔案中 (`*.tar.gz`)。在傳送壓縮的 TAR 檔案進行編譯之前，Ambarella 裝置需要將其他檔案包含在該檔案中。如果您要使用 SageMaker Neo 編譯 Ambarella 目標的模型，請在壓縮過的 TAR 檔案中包含下列檔案：
+ 使用由 SageMaker Neo 支援的架構訓練而來的模型 
+ JSON 組態檔案
+ 校正影像

例如，壓縮過的 TAR 檔案內容看起來應與下列範例類似：

```
├──amba_config.json
├──calib_data
|    ├── data1
|    ├── data2
|    ├── .
|    ├── .
|    ├── .
|    └── data500
└──mobilenet_v1_1.0_0224_frozen.pb
```

目錄組態如下所示：
+ `amba_config.json`：組態檔案
+ `calib_data`：包含校正影像的資料夾
+ `mobilenet_v1_1.0_0224_frozen.pb`：儲存為凍結圖表的 TensorFlow 模型

如需有關 SageMaker Neo 支援的架構之詳細資訊，請參閱[支援的架構](neo-supported-devices-edge-frameworks.md)。

## 設定組態檔案
<a name="neo-troubleshooting-target-devices-ambarella-config"></a>

組態檔案提供了 Ambarella 工具鏈編譯模型所需的資訊。組態檔案必須另存為 JSON 檔案，且檔名必須以 `*config.json`結尾。下列圖表顯示組態檔案的內容。


| 金錀 | Description | 範例 | 
| --- | --- | --- | 
| inputs | 字典將輸入圖層映射至屬性。 | <pre>{inputs:{"data":{...},"data1":{...}}}</pre> | 
| "data" | 輸入圖層名稱。注意："data" 是可用來標示輸入圖層的名稱範例。 | "data" | 
| shape | 描述輸入到模型的形狀。這會遵循與 SageMaker Neo 使用的相同慣例。 | "shape"："1,3,224,224" | 
| filepath | 包含校正影像之目錄的相對路徑。這些可以是二進位或影像檔案，如 JPG 或 PNG。 | "filepath"："calib\$1data/" | 
| colorformat | 模型預期的顏色格式。這將在將影像轉換為二進位時使用。支援的值：[RGB、BGR]。預設值為 RGB。 | "colorformat"："RGB" | 
| mean | 平均值會從輸入中減去。可以是單一值或值清單。當平均值作為清單提供時，項目數必須與輸入的管道尺寸相符。 | "mean"：128.0 | 
| scale | 要用於標準化輸入的擴展值。可以是單一值或值清單。當擴展以清單形式指定時，項目數必須與輸入的管道尺寸相符。 | "scale"：255.0 | 

以下是範例組態檔案：

```
{
    "inputs": {
        "data": {
                "shape": "1, 3, 224, 224",
                "filepath": "calib_data/",
                "colorformat": "RGB",
                "mean":[128,128,128],
                "scale":[128.0,128.0,128.0]
        }
    }
}
```

## 校正影像
<a name="neo-troubleshooting-target-devices-ambarella-calibration-images"></a>

透過提供校正影像量化訓練過的模型。量化模型可改善 CVFlow 引擎在 Ambarella System on a Chip (SoC) 上的效能。Ambarella 工具鏈使用校正影像，來確定應如何量化模型中的每個圖層以達到最佳效能和準確性。每個圖層被獨立量化為 INT8 或 INT16 格式。最終模型在量化後具有 INT8 和 INT16 圖層的混合。

**您應該使用多少張影像？**

建議您納入 100 至 200 個影像，這些影像代表模型預期處理的場景類型。模型編譯時間會隨輸入檔案中的校正影像數量呈線性成長。

**建議使用哪些映像格式？**

校正影像可以是原始二進位格式或 JPG 和 PNG 等映像格式。

您的校正資料夾可以混合包含影像和二進位檔案。如果校正資料夾同時包含影像和二進位檔案，工具鏈會先將影像轉換為二進位檔案。轉換完成後，它將使用新生成的二進位檔案以及最初位於該資料夾中的二進位檔案。

**我可以先將影像轉換為二進位格式嗎？**

是。您可以使用 [OpenCV](https://opencv.org/) 或 [PIL](https://python-pillow.org/) 等開放原始碼套件將影像轉換為二進位格式。裁切影像並調整大小，使其符合訓練模型的輸入圖層。



## 平均值和擴展
<a name="neo-troubleshooting-target-devices-ambarella-mean-scale"></a>

您可以為 Amberalla 工具鏈指定平均值和擴展的預處理選項。這些作業會內嵌到網路中，並在每個輸入的推論期間套用。如果您指定平均值或擴展，請勿提供已處理的資料。更具體地說，請勿提供您從擴展減去平均值或套用至擴展的資料。

## 檢查您的編譯日誌
<a name="neo-troubleshooting-target-devices-ambarella-compilation"></a>

如需檢查 Ambarella 裝置編譯日誌的資訊，請參閱[檢查您的編譯日誌](neo-troubleshooting-compilation.md#neo-troubleshooting-compilation-logs)。