Tensor

公用介面 Tensor

TensorFlow Lite 中使用的已型多維度陣列。

Tensor 的原生控制代碼是由 NativeInterpreterWrapper 管理,用戶端不需要關閉。然而,NativeInterpreterWrapper 關閉後,tensor 控制代碼就會失效。

巢狀類別

類別 Tensor.QuantizationParams TFLite Model 結構定義檔案中 資料表 QuantizationParameters 對應的量化參數。

公用方法

抽象 ByteBuffer
asReadOnlyBuffer()
傳回 Tensor 資料的唯讀 ByteBuffer 檢視畫面。
抽象 DataType
dataType()
傳回儲存在 Tensor 中的元素 DataType
抽象 int
numBytes()
傳回 Tensor 資料的大小 (以位元組為單位)。
抽象 int
numDimensions()
傳回 Tensor 的維度數量 (有時稱為「排名」)。
抽象 int
numElements()
傳回 Tensor 扁平化 (1-D) 檢視畫面中的元素數量。
Tensor.QuantizationParams
quantizationParams()
傳回所屬解譯器內張量的量化參數。
抽象 int[]
shape()
傳回 Tensor 的形狀,即各尺寸的大小。
抽象 int[]
shapeSignature()
傳回 Tensor 的原始形狀,即每個維度的大小,也就是在執行任何大小調整前。

公用方法

public 抽象 ByteBuffer asReadOnlyBuffer ()

傳回 Tensor 資料的唯讀 ByteBuffer 檢視畫面。

一般來說,這個方法最適合用於在執行推論「之後」(例如透過 InterpreterApi.run(Object, Object)) 取得輸出張量資料的唯讀檢視畫面。特別注意的是,某些圖形具有動態形狀的輸出,因此能將預先定義的輸出緩衝區饋送給解譯器異常。使用方式範例:

 interpreter.run(input, null);
 ByteBuffer outputBuffer = interpreter.getOutputTensor(0).asReadOnlyBuffer();
 // Copy or read from outputBuffer.

警告:如果張量尚未分配,例如在執行推論前分配,結果將不會定義。請注意,當張量以任何方式失效時 (例如,執行推論或調整圖形大小),基礎張量指標也可能有所變更,因此「不能」安全保留傳回的緩衝區參照,以供在推論後立即使用。*錯誤* 使用範例:

 ByteBuffer outputBuffer = interpreter.getOutputTensor(0).asReadOnlyBuffer();
 interpreter.run(input, null);
 // Copy or read from outputBuffer (which may now be invalid).

擲回
IllegalArgumentException 表示系統尚未分配 Tensor 資料。

public 抽象DataType dataType ()

傳回儲存在 Tensor 中的元素 DataType

public 抽象 int numBytes ()

傳回 Tensor 資料的大小 (以位元組為單位)。

public 抽象化 int numDimensions ()

傳回 Tensor 的維度數量 (有時稱為「排名」)。

純量的數值為 0,代表向量為 1,矩陣的值為 2,3D 張量則為 3,以此類推。

public 抽象 int numElements ()

傳回 Tensor 扁平化 (1-D) 檢視畫面中的元素數量。

公用 抽象 Tensor.QuantizationParams quantizationParams ()

傳回所屬解譯器內張量的量化參數。

只有量化張量具備有效的 QuantizationParameters。如果不是量化的張量,則尺度和零點值都會是 0。

public 抽象化 int[] 形狀 ()

傳回 Tensor 的形狀,即各尺寸的大小。

傳回
  • 其中 i-th 元素是張量的 i-th 維度大小的陣列。

public 抽象化 int[] shapeSignature ()

傳回 Tensor 的原始形狀,即每個維度的大小,也就是在執行任何大小調整前。未知的維度 指定的值為 -1。

傳回
  • 其中 i-th 元素是張量的 i-th 維度大小的陣列。