| 已知的直接子类 | 
表示模型的输入或输出的数据缓冲区。
公共方法
| 静态 TensorBuffer | |
| 静态 TensorBuffer | |
| 静态 TensorBuffer | 
createFrom(TensorBuffer 缓冲区,DataType 数据类型)TensorBufferDataType
                
                   使用指定的  DataType创建来自其他数据的TensorBuffer深层复制。 | 
| ByteBuffer | 
getBuffer()
                
                   返回数据缓冲区。 | 
| 抽象 DataType | 
getDataType()
                
                   返回此缓冲区的数据类型。 | 
| 整数 | 
getFlatSize()
                
                   获取缓冲区的 FlatSize。 | 
| 抽象 float[] | 
getFloatArray()
                
                   返回存储在此缓冲区中的值的浮点数组。 | 
| 抽象 浮点数 | 
getFloatValue(int absIndex)
                
                   返回指定索引处的浮点值。 | 
| 抽象 整数 [] | 
getIntArray()
                
                   返回存储在此缓冲区中的值的整型数组。 | 
| 抽象 整数 | 
getIntValue(int absIndex)
                
                   返回指定索引处的整数值。 | 
| 整数 [] | 
getShape()
                
                   获取当前形状。 | 
| 抽象 整数 | 
getTypeSize()
                
                   返回数组中单个元素的字节数。 | 
| 布尔值 | 
isDynamic()
                
                   如果  TensorBuffer是动态大小(可以随意调整大小),则返回 。 | 
| 抽象 无效 | 
loadArray(int[] src, int[] 形状)
                
                   将一个整数数组加载到具有特定形状的该缓冲区。 | 
| 抽象 无效 | 
loadArray(float[] src, int[] 形状)
                
                   将一个具有特定形状的浮点数数组加载到此缓冲区。 | 
| 无效 | 
loadArray(float[] src)
                
                   将浮点数组加载到此缓冲区中。 | 
| 无效 | |
| 无效 | |
| 无效 | 
继承的方法
公共方法
<ph type="x-smartling-placeholder"></ph> 公开 静态 TensorBuffer createDynamic (DataType dataType)
创建具有指定 DataType 的空动态 TensorBuffer。该元素的形状
 创建于 TensorBuffer 为 {0}。
 
动态 TensorBuffer 会在加载数组或数据缓冲区时重新分配内存, 缓冲区空间以下是一些示例:
 // Creating a float dynamic TensorBuffer:
 TensorBuffer tensorBuffer = TensorBuffer.createDynamic(DataType.FLOAT32);
 // Loading a float array:
 float[] arr1 = new float[] {1, 2, 3};
 tensorBuffer.loadArray(arr, new int[] {arr1.length});
 // loading another float array:
 float[] arr2 = new float[] {1, 2, 3, 4, 5};
 tensorBuffer.loadArray(arr, new int[] {arr2.length});
 // loading a third float array with the same size as arr2, assuming shape doesn't change:
 float[] arr3 = new float[] {5, 4, 3, 2, 1};
 tensorBuffer.loadArray(arr);
 // loading a forth float array with different size as arr3 and omitting the shape will result
 // in error:
 float[] arr4 = new float[] {3, 2, 1};
 tensorBuffer.loadArray(arr); // Error: The size of byte buffer and the shape do not match.
 参数
| dataType | 要创建的 TensorBuffer的数据类型。 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 静态 TensorBuffer createFixedSize (int[] 形状, DataType 数据类型)
使用指定的 shape 和 DataType 创建 TensorBuffer。以下是一些
 示例:
 
 // Creating a float TensorBuffer with shape {2, 3}:
 int[] shape = new int[] {2, 3};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.FLOAT32);
 
 // Creating an uint8 TensorBuffer of a scalar:
 int[] shape = new int[] {};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 
 // Creating an empty uint8 TensorBuffer:
 int[] shape = new int[] {0};
 TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
 固定大小的 TensorBuffer 一旦创建,其大小便无法更改。
参数
| 形状 | 要创建的 TensorBuffer的形状。 | 
|---|---|
| dataType | 要创建的 TensorBuffer的数据类型。 | 
抛出
| NullPointerException | 如果 shape为 null,则会发生该错误。 | 
|---|---|
| IllegalArgumentException | 如果 shape包含非正元素,则返回此值。 | 
<ph type="x-smartling-placeholder"></ph> 公开 静态 TensorBuffer createFrom (TensorBuffer 缓冲区,DataType 数据类型)
使用指定的 DataType 创建来自其他数据的 TensorBuffer 深层复制。
参数
| 缓存空间 | 要从中复制数据的源 TensorBuffer。 | 
|---|---|
| dataType | 新创建的 TensorBuffer的预期DataType。 | 
抛出
| NullPointerException | 如果 buffer为 null,则会发生该错误。 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 整数 getFlatSize ()
获取缓冲区的 FlatSize。
抛出
| IllegalStateException | 如果底层数据已损坏 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 抽象 float[] getFloatArray ()
返回存储在此缓冲区中的值的浮点数组。如果缓冲区的类型不同
 而不是浮点数,这些值将转换为浮点数。例如,TensorBufferUint8 中的值将从 uint8 转换为 float。
<ph type="x-smartling-placeholder"></ph> 公开 抽象 浮点数 getFloatValue (int absIndex)
返回指定索引处的浮点值。如果缓冲区的类型与浮点数不同,则
 值将转换为浮点数。例如,从 TensorBufferUint8 中读取值时,系统首先将该值读取为 uint8,然后从
 uint8 转换为 float。
 
 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].
 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 float v = tensorBuffer.getFloatValue(3);
 参数
| absIndex | 要读取的值的绝对索引。 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 抽象 整数 [] getIntArray ()
返回存储在此缓冲区中的值的整型数组。如果缓冲区的类型
 而不是 int,这些值将转换为 int,并且可能会损失精度。例如:
 从 TensorBufferFloat 获取一个值为 {400.32f, 23.04f} 的 int 数组,输出
 为 {400, 23}。
<ph type="x-smartling-placeholder"></ph> 公开 抽象 整数 getIntValue (int absIndex)
返回指定索引处的整数值。如果缓冲区的类型与 int 类型不同,
 将转换为整数。例如,从 TensorBufferFloat 读取值时,
 系统会先将值读取为 float,然后再从 float 转换为 int。损失
 可能适用。
 
 For example, a TensorBuffer with shape {2, 3} that represents the following array,
 [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]].
 The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by:
 int v = tensorBuffer.getIntValue(3);
 Note that v is converted from 3.0f to 3 as a result of type conversion.
 参数
| absIndex | 要读取的值的绝对索引。 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 整数 [] getShape ()
获取当前形状。(在此处返回副本以避免意外修改。)
抛出
| IllegalStateException | 如果底层数据已损坏 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 抽象 整数 getTypeSize ()
返回数组中单个元素的字节数。例如,浮动缓冲区将 返回 4,而字节缓冲区会返回 1。
<ph type="x-smartling-placeholder"></ph> 公开 抽象 无效 loadArray (int[] src, int[] 形状)
将一个整数数组加载到具有特定形状的该缓冲区。如果缓冲区的类型不同
 比 int 多,这些值将转换为缓冲区的类型,然后再加载到
 缓冲区,还可能会损失精度。例如,加载值为 {400,
 -23} 转换为 TensorBufferUint8,则这些值将被限制为 [0, 255],然后被限制为
 已由 {255, 0} 转换为 uint8。
参数
| src | 要加载的源数组。 | 
|---|---|
| 形状 | src表示的张量的形状。 | 
抛出
| NullPointerException | 如果 src为 null,则会发生该错误。 | 
|---|---|
| NullPointerException | 如果 shape为 null,则会发生该错误。 | 
| IllegalArgumentException | 要加载的数组的大小与 指定形状。 | 
<ph type="x-smartling-placeholder"></ph> 公开 抽象 无效 loadArray (float[] src, int[] 形状)
将一个具有特定形状的浮点数数组加载到此缓冲区。如果缓冲区的类型不同
 而不是浮点数,这些值会在加载到
 缓冲区,还可能会损失精度。例如,将浮点数组加载到值为 {400.32f, -23.04f} 的 TensorBufferUint8 中,这些值将被限制为 [0, 255],
 然后由 {255, 0} 转换为 uint8。
参数
| src | 要加载的源数组。 | 
|---|---|
| 形状 | src表示的张量的形状。 | 
抛出
| NullPointerException | 如果 src为 null,则会发生该错误。 | 
|---|---|
| NullPointerException | 如果 shape为 null,则会发生该错误。 | 
| IllegalArgumentException | 要加载的数组的大小与 指定形状。 | 
<ph type="x-smartling-placeholder"></ph> 公开 无效 loadArray (float[] src)
将浮点数组加载到此缓冲区中。如果缓冲区的类型与浮点数不同,则
 值在加载到缓冲区之前转换为缓冲区的类型,而损失
 可能适用。例如,将浮点数数组加载到 TensorBufferUint8 中
 如果值为 {400.32f, -23.04f},则这些值会限定为 [0, 255],然后强制转换为
 uint8 by {255, 0}。
 
使用此方法假设 src 的形状与它的形状相同
 TensorBuffer。因此,buffer (src.length) 的大小应始终匹配
 此 TensorBuffer 的平面尺寸(适用于固定尺寸和动态 TensorBuffer)。如果 src 具有不同的形状,请使用 loadArray(float[], int[])。
参数
| src | 要加载的源数组。 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 无效 loadArray (int[] src)
将一个整型数组加载到此缓冲区中。如果缓冲区的类型与 int 类型不同,
 在加载到缓冲区之前,将转换为该缓冲区的类型,而损失
 可能适用。例如,将值为 {400, -23} 的 int 数组加载到 TensorBufferUint8 中,这些值将被限制为 [0, 255],然后通过
 {255, 0}。
 
使用此方法假设 src 的形状与它的形状相同
 TensorBuffer。因此,buffer (src.length) 的大小应始终匹配
 此 TensorBuffer 的平面尺寸(适用于固定尺寸和动态 TensorBuffer)。如果 src 具有不同的形状,请使用 loadArray(int[], int[])。
参数
| src | 要加载的源数组。 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 无效 loadBuffer (ByteBuffer 缓冲区)
将一个字节缓冲区加载到此 TensorBuffer 中。缓冲区空间必须与
 本TensorBuffer。
 
使用此方法假设 buffer 的形状与它的形状相同
 TensorBuffer。因此,buffer (buffer.limit()) 的大小应始终
 对于固定尺寸和动态 TensorBuffer,与此 TensorBuffer 的平面尺寸匹配。如果 buffer 有不同的值,请使用 loadBuffer(ByteBuffer, int[])
 形状。
 
重要提示 :已加载的缓冲区是一个引用。请勿修改。我们不会在此处创建以下内容的副本: 性能方面的顾虑,但如果需要进行修改,请制作副本。
为了获得最佳性能,请务必加载直接 ByteBuffer 或 ByteBuffer
 由数组提供支持。
 
如果 buffer 是只读的,我们会采用写入时复制策略来提高性能。
参数
| 缓存空间 | 要加载的字节缓冲区。 | 
|---|
<ph type="x-smartling-placeholder"></ph> 公开 无效 loadBuffer (ByteBuffer 缓冲区,int[] 形状)
将一个字节缓冲区加载到此 TensorBuffer 中,且具有特定形状。
 
重要提示 :已加载的缓冲区是一个引用。请勿修改。我们不会在此处创建以下内容的副本: 性能方面的顾虑,但如果需要进行修改,请制作副本。
为了获得最佳性能,请务必加载直接 ByteBuffer 或 ByteBuffer
 由数组提供支持。
参数
| 缓存空间 | 要加载的字节缓冲区。 | 
|---|---|
| 形状 | 
抛出
| NullPointerException | 如果 buffer为 null,则会发生该错误。 | 
|---|---|
| IllegalArgumentException | 如果 buffer和typeSize的大小
     或者buffer和flatSize的大小不匹配。 |