public abstract class Tensor
extends java.lang.Object
大多数张量将被构造为 Tensor.fromBlob(data, shape),其中 data 可以是数组或直接 Buffer(适当的子类)。提供了辅助方法来适当地分配缓冲区。
要访问 Tensor 数据,请参阅 dtype()、shape() 和各种 getDataAs* 方法。
使用 data 作为数组构造 Tensor 对象时,未指定此数据是复制还是作为引用保留,因此建议在构造后不要修改它。作为 Buffer 传递的 data 不会被复制,因此可以在 Module 调用之间修改它以避免重新分配。从 Tensor 对象检索的数据可能被复制,也可能是对 Tensor 的内部数据缓冲区的引用。shape 始终被复制。
| 修饰符和类型 | 方法和描述 |
|---|---|
static java.nio.ByteBuffer |
allocateByteBuffer(int numElements)
分配一个新的直接
ByteBuffer,具有本机字节序和指定的容量,可用于 fromBlob(ByteBuffer, long[])、fromBlobUnsigned(ByteBuffer, long[])。 |
static java.nio.DoubleBuffer |
allocateDoubleBuffer(int numElements)
分配一个新的直接
DoubleBuffer,具有本机字节序和指定的容量,可用于 fromBlob(DoubleBuffer, long[])。 |
static java.nio.FloatBuffer |
allocateFloatBuffer(int numElements)
分配一个新的直接
FloatBuffer,具有本机字节序和指定的容量,可用于 fromBlob(FloatBuffer, long[])。 |
static java.nio.IntBuffer |
allocateIntBuffer(int numElements)
分配一个新的直接
IntBuffer,具有本机字节序和指定的容量,可用于 fromBlob(IntBuffer, long[])。 |
static java.nio.LongBuffer |
allocateLongBuffer(int numElements)
分配一个新的直接
LongBuffer,具有本机字节序和指定的容量,可用于 fromBlob(LongBuffer, long[])。 |
abstract DType |
dtype() |
static Tensor |
fromBlob(byte[] data, long[] shape) |
static Tensor |
fromBlob(byte[] data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.int8,具有指定的形状和数据作为字节数组。
|
static Tensor |
fromBlob(java.nio.ByteBuffer data, long[] shape) |
static Tensor |
fromBlob(java.nio.ByteBuffer data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.int8,具有指定的形状和数据。
|
static Tensor |
fromBlob(double[] data, long[] shape) |
static Tensor |
fromBlob(double[] data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.float64,具有指定的形状和数据作为双精度数组。
|
static Tensor |
fromBlob(java.nio.DoubleBuffer data, long[] shape) |
static Tensor |
fromBlob(java.nio.DoubleBuffer data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.float64,具有指定的形状和数据。
|
static Tensor |
fromBlob(float[] data, long[] shape) |
static Tensor |
fromBlob(float[] data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.float32,具有指定的形状和数据作为浮点数数组。
|
static Tensor |
fromBlob(java.nio.FloatBuffer data, long[] shape) |
static Tensor |
fromBlob(java.nio.FloatBuffer data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.float32,具有指定的形状和数据。
|
static Tensor |
fromBlob(int[] data, long[] shape) |
static Tensor |
fromBlob(int[] data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.int32,具有指定的形状和数据作为整数数组。
|
static Tensor |
fromBlob(java.nio.IntBuffer data, long[] shape) |
static Tensor |
fromBlob(java.nio.IntBuffer data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.int32,具有指定的形状和数据。
|
static Tensor |
fromBlob(long[] data, long[] shape) |
static Tensor |
fromBlob(long[] data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.int64,具有指定的形状和数据作为长整数数组。
|
static Tensor |
fromBlob(java.nio.LongBuffer data, long[] shape) |
static Tensor |
fromBlob(java.nio.LongBuffer data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.int64,具有指定的形状和数据。
|
static Tensor |
fromBlobUnsigned(byte[] data, long[] shape) |
static Tensor |
fromBlobUnsigned(byte[] data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.uint8,具有指定的形状和数据作为字节数组。
|
static Tensor |
fromBlobUnsigned(java.nio.ByteBuffer data, long[] shape) |
static Tensor |
fromBlobUnsigned(java.nio.ByteBuffer data, long[] shape, MemoryFormat memoryFormat)
创建一个新的 Tensor 实例,其 dtype 为 torch.uint8,具有指定的形状和数据。
|
byte[] |
getDataAsByteArray() |
double[] |
getDataAsDoubleArray() |
float[] |
getDataAsFloatArray() |
int[] |
getDataAsIntArray() |
long[] |
getDataAsLongArray() |
byte[] |
getDataAsUnsignedByteArray() |
MemoryFormat |
memoryFormat()
返回此张量的内存格式。
|
long |
numel()
返回此张量中的元素数量。
|
static long |
numel(long[] shape)
计算具有指定形状的张量中的元素数量。
|
long[] |
shape()
返回此张量的形状。
|
public static java.nio.ByteBuffer allocateByteBuffer(int numElements)
ByteBuffer,具有本机字节序和指定的容量,可用于 fromBlob(ByteBuffer, long[])、fromBlobUnsigned(ByteBuffer, long[])。numElements - 结果缓冲区的容量(元素数量)。public static java.nio.IntBuffer allocateIntBuffer(int numElements)
IntBuffer,具有本机字节序和指定的容量,可用于 fromBlob(IntBuffer, long[])。numElements - 结果缓冲区的容量(元素数量)。public static java.nio.FloatBuffer allocateFloatBuffer(int numElements)
FloatBuffer,具有本机字节序和指定的容量,可用于 fromBlob(FloatBuffer, long[])。numElements - 结果缓冲区的容量(元素数量)。public static java.nio.LongBuffer allocateLongBuffer(int numElements)
LongBuffer,具有本机字节序和指定的容量,可用于 fromBlob(LongBuffer, long[])。numElements - 结果缓冲区的容量(元素数量)。public static java.nio.DoubleBuffer allocateDoubleBuffer(int numElements)
DoubleBuffer,具有本机字节序和指定的容量,可用于 fromBlob(DoubleBuffer, long[])。numElements - 结果缓冲区的容量(元素数量)。public static Tensor fromBlobUnsigned(byte[] data, long[] shape, MemoryFormat memoryFormat)
data - 张量元素shape - 张量形状public static Tensor fromBlobUnsigned(byte[] data, long[] shape)
public static Tensor fromBlob(byte[] data, long[] shape, MemoryFormat memoryFormat)
data - 张量元素shape - 张量形状public static Tensor fromBlob(byte[] data, long[] shape)
public static Tensor fromBlob(int[] data, long[] shape, MemoryFormat memoryFormat)
data - 张量元素shape - 张量形状public static Tensor fromBlob(int[] data, long[] shape)
public static Tensor fromBlob(float[] data, long[] shape, MemoryFormat memoryFormat)
data - 张量元素shape - 张量形状public static Tensor fromBlob(float[] data, long[] shape)
public static Tensor fromBlob(long[] data, long[] shape, MemoryFormat memoryFormat)
data - 张量元素shape - 张量形状public static Tensor fromBlob(long[] data, long[] shape)
public static Tensor fromBlob(double[] data, long[] shape, MemoryFormat memoryFormat)
shape - 张量形状data - 张量元素public static Tensor fromBlob(double[] data, long[] shape)
public static Tensor fromBlobUnsigned(java.nio.ByteBuffer data, long[] shape, MemoryFormat memoryFormat)
data - 具有本机字节序的直接缓冲区,包含 Tensor.numel(shape) 个元素。缓冲区将直接使用,不会复制,对其内容的更改将更改张量。shape - 张量形状public static Tensor fromBlobUnsigned(java.nio.ByteBuffer data, long[] shape)
public static Tensor fromBlob(java.nio.ByteBuffer data, long[] shape, MemoryFormat memoryFormat)
data - 具有本机字节序的直接缓冲区,包含 Tensor.numel(shape) 个元素。缓冲区将直接使用,不会复制,对其内容的更改将更改张量。shape - 张量形状public static Tensor fromBlob(java.nio.ByteBuffer data, long[] shape)
public static Tensor fromBlob(java.nio.IntBuffer data, long[] shape, MemoryFormat memoryFormat)
data - 具有本机字节序的直接缓冲区,包含 Tensor.numel(shape) 个元素。缓冲区将直接使用,不会复制,对其内容的更改将更改张量。shape - 张量形状public static Tensor fromBlob(java.nio.IntBuffer data, long[] shape)
public static Tensor fromBlob(java.nio.FloatBuffer data, long[] shape, MemoryFormat memoryFormat)
data - 具有本机字节序的直接缓冲区,包含 Tensor.numel(shape) 个元素。缓冲区将直接使用,不会复制,对其内容的更改将更改张量。shape - 张量形状public static Tensor fromBlob(java.nio.FloatBuffer data, long[] shape)
public static Tensor fromBlob(java.nio.LongBuffer data, long[] shape, MemoryFormat memoryFormat)
data - 具有本机字节序的直接缓冲区,包含 Tensor.numel(shape) 个元素。缓冲区将直接使用,不会复制,对其内容的更改将更改张量。shape - 张量形状public static Tensor fromBlob(java.nio.LongBuffer data, long[] shape)
public static Tensor fromBlob(java.nio.DoubleBuffer data, long[] shape, MemoryFormat memoryFormat)
data - 具有本机字节序的直接缓冲区,包含 Tensor.numel(shape) 个元素。缓冲区将直接使用,不会复制,对其内容的更改将更改张量。shape - 张量形状public static Tensor fromBlob(java.nio.DoubleBuffer data, long[] shape)
public long numel()
public static long numel(long[] shape)
public long[] shape()
public MemoryFormat memoryFormat()
public abstract DType dtype()
public byte[] getDataAsByteArray()
java.lang.IllegalStateException - 如果它被用于非 int8 张量调用。public byte[] getDataAsUnsignedByteArray()
java.lang.IllegalStateException - 如果它被用于非 uint8 张量调用。public int[] getDataAsIntArray()
java.lang.IllegalStateException - 如果它被用于非 int32 张量调用。public float[] getDataAsFloatArray()
java.lang.IllegalStateException - 如果它被用于非 float32 张量调用。public long[] getDataAsLongArray()
java.lang.IllegalStateException - 如果它被用于非 int64 张量调用。public double[] getDataAsDoubleArray()
java.lang.IllegalStateException - 如果它被用于非 float64 张量调用。