public abstract class Tensor
extends java.lang.Object
大多數張量將建構為 Tensor.fromBlob(data, shape),其中 data 可以是陣列或直接 Buffer(適當的子類別)。提供了輔助方法來正確配置緩衝區。
若要存取張量資料,請參閱 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 張量呼叫的。