公共接口 Tensor
在 TensorFlow Lite 中使用的类型化多维数组。
Tensor
的原生句柄由 NativeInterpreterWrapper
管理,并且不需要由客户端关闭。不过,一旦 NativeInterpreterWrapper
关闭,张量句柄便会失效。
嵌套类
类别 | Tensor.QuantizationParams | 与 TFLite 模型架构文件 中的表 QuantizationParameters 对应的量化参数。 |
公共方法
abstract ByteBuffer |
asReadOnlyBuffer()
返回张量数据的只读
ByteBuffer 视图。 |
abstract DataType | |
abstract int |
numBytes()
返回张量数据的大小(以字节为单位)。
|
abstract int |
numDimensions()
返回张量的维度数(有时称为秩)。
|
abstract int |
numElements()
返回张量的扁平 (1-D) 视图中的元素数。
|
abstract Tensor.QuantizationParams |
quantizationParams()
返回所属解释器中张量的量化参数。
|
abstract int[] | |
abstract int[] |
shapeSignature()
在执行任何调整大小之前,返回张量的原始形状,即每个维度的大小。
|
公共方法
public abstract ByteBuffer asReadOnlyBuffer ()
返回张量数据的只读 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 | (如果尚未分配张量数据)。 |
---|
public abstract int numBytes ()
返回张量数据的大小(以字节为单位)。
public abstract int numElements ()
返回张量的扁平 (1-D) 视图中的元素数量。
public abstract Tensor.QuantizationParams quantizationParams ()
返回所属解释器中张量的量化参数。
只有量化张量具有有效的 QuantizationParameters
。对于未量化的张量,scale 和 zero_point 的值均为 0。
public abstract int[] shapeSignature ()
在执行任何调整大小之前,返回张量的原始形状,即每个维度的大小。未知维度的值为 -1。
返回
- 第 i 个元素是张量的第 i 个维度的大小的数组。