目錄
- 1. 函式概述
- 2. 使用場景
- 3. 返回的物件屬性
- 4. 示例程式碼
- 5. 多輸入情況
- 6. 常見用途
- 7. 注意事項
compiled_model.input()
是 OpenVINO API 中的一個方法,用於獲取編譯後的模型輸入節點的資訊。
1. 函式概述
compiled_model.input()
返回的是一個物件或列表,包含編譯後模型的輸入節點資訊。主要用於在推理過程中獲取輸入的詳細屬性,例如輸入節點的名稱、資料型別、維度等。- 這個方法通常在模型載入和編譯完成後呼叫,以便在推理前檢查或設定輸入的格式。
2. 使用場景
在使用 OpenVINO 進行推理時,需要知道模型的輸入節點資訊,以確保傳入的資料與模型的輸入規格匹配。compiled_model.input()
提供了對這些資訊的訪問,便於使用者動態適配輸入資料。
3. 返回的物件屬性
返回的物件通常具備以下屬性:
- Name(名稱):輸入節點的名稱,便於在推理時透過名稱指定輸入。
- Shape(形狀):輸入資料的維度,例如
[1, 3, 224, 224]
表示一個批次大小為 1、通道數為 3、解析度為 224x224 的影像輸入。 - Data Type(資料型別):輸入資料的型別,例如
float32
或uint8
,用於確保輸入資料型別的相容性。
4. 示例程式碼
import openvino.runtime as ov
# 載入模型和編譯
core = ov.Core()
model = core.read_model("model.xml")
compiled_model = core.compile_model(model, "CPU")
# 獲取輸入節點資訊
input_info = compiled_model.input()
# 列印輸入資訊
print("Input name:", input_info.get_any_name())
print("Input shape:", input_info.shape)
print("Input data type:", input_info.get_element_type())
5. 多輸入情況
對於多輸入模型,compiled_model.input()
返回一個輸入節點的列表,每個輸入節點對應模型的一個輸入。可以遍歷每個輸入節點的屬性:
for input_node in compiled_model.inputs:
print("Input name:", input_node.get_any_name())
print("Input shape:", input_node.shape)
print("Input data type:", input_node.get_element_type())
6. 常見用途
- 確認輸入格式:在實際推理前檢查模型輸入的形狀、資料型別,以確保輸入資料符合模型的要求。
- 輸入資料預處理:根據輸入節點的資訊對資料進行適當的預處理,比如調整影像尺寸、格式、歸一化等。
7. 注意事項
- 若模型輸入的資料格式不符合預期,推理會報錯,因此建議在執行推理前始終檢查輸入節點的屬性。
- 不同模型的輸入可能有多個節點和不同資料格式,務必根據實際模型配置輸入。
透過 compiled_model.input()
,可以有效獲取模型輸入的詳細資訊,使推理前的資料準備更加精準。