類 OnnxTensor
- java.lang.Object
-
- ai.onnxruntime.OnnxTensorLike
-
- ai.onnxruntime.OnnxTensor
-
- 所有已實現的介面
OnnxValue,java.lang.AutoCloseable
public class OnnxTensor extends OnnxTensorLike
一個包裝 OnnxTensor 的 Java 物件。張量是庫的主要輸入,也可以作為輸出返回。
-
-
巢狀類摘要
-
從介面 ai.onnxruntime.OnnxValue 繼承的巢狀類/介面
OnnxValue.OnnxValueType
-
-
欄位摘要
-
從類 ai.onnxruntime.OnnxTensorLike 繼承的欄位
allocatorHandle, closed, info, nativeHandle
-
-
方法摘要
所有方法 靜態方法 例項方法 具體方法 修飾符及型別 方法 描述 voidclose()關閉張量,釋放其底層記憶體(如果不是由 NIO 緩衝區支援)。static OnnxTensorcreateTensor(OrtEnvironment env, java.lang.Object data)從 Java 原語、原語多維陣列或 String 多維陣列建立張量。static OnnxTensorcreateTensor(OrtEnvironment env, java.lang.String[] data, long[] shape)從扁平化的字串陣列建立張量。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape)建立由直接 ByteBuffer 支援的 OnnxTensor。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape, OnnxJavaType type)建立由直接 ByteBuffer 支援的 OnnxTensor。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.DoubleBuffer data, long[] shape)建立由直接 DoubleBuffer 支援的 OnnxTensor。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.FloatBuffer data, long[] shape)建立由直接 FloatBuffer 支援的 OnnxTensor。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.IntBuffer data, long[] shape)建立由直接 IntBuffer 支援的 OnnxTensor。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.LongBuffer data, long[] shape)建立由直接 LongBuffer 支援的 OnnxTensor。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape)建立由直接 ShortBuffer 支援的 OnnxTensor。static OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape, OnnxJavaType type)建立由直接 ShortBuffer 支援的 OnnxTensor。java.util.Optional<java.nio.Buffer>getBufferRef()返回支援此OnnxTensor的緩衝區的引用。java.nio.ByteBuffergetByteBuffer()返回底層 OnnxTensor 作為 ByteBuffer 的副本。java.nio.DoubleBuffergetDoubleBuffer()如果底層型別是 double,則返回底層 OnnxTensor 作為 DoubleBuffer 的副本,否則返回 null。java.nio.FloatBuffergetFloatBuffer()如果底層 OnnxTensor 可以無損地轉換為 float(即...java.nio.IntBuffergetIntBuffer()如果底層型別是 int32 或 uint32,則返回底層 OnnxTensor 作為 IntBuffer 的副本,否則返回 null。java.nio.LongBuffergetLongBuffer()如果底層型別是 int64 或 uint64,則返回底層 OnnxTensor 作為 LongBuffer 的副本,否則返回 null。java.nio.ShortBuffergetShortBuffer()如果底層型別是 int16, uint16, fp16 或 bf16,則返回底層 OnnxTensor 作為 ShortBuffer 的副本,否則返回 null。OnnxValue.OnnxValueTypegetType()獲取此 OnnxValue 的型別。java.lang.ObjectgetValue()如果張量是標量,則返回裝箱的原語;如果張量是多維的,則返回原語的多維陣列。booleanownsBuffer()如果此 OnnxTensor 中的緩衝區是在構建此張量時建立的(即,它是使用者提供的緩衝區或陣列的副本,並且可能持有該緩衝區的唯一引用),則返回 true。java.lang.StringtoString()-
從類 ai.onnxruntime.OnnxTensorLike 繼承的方法
checkClosed, getInfo, isClosed
-
-
-
-
方法詳細資訊
-
ownsBuffer
public boolean ownsBuffer()
如果此 OnnxTensor 中的緩衝區是在構建此張量時建立的(即,它是使用者提供的緩衝區或陣列的副本,並且可能持有該緩衝區的唯一引用),則返回 true。當此值為 true 時,底層緩衝區是從使用者輸入複製的,因此使用者無法在首先透過
getBufferRef()獲取引用之前修改此緩衝區的狀態。- 返回
- 如果此 OnnxTensor 中的緩衝區是在構建時由它分配的(即,它是使用者緩衝區或陣列的副本),則返回 true。
-
getBufferRef
public java.util.Optional<java.nio.Buffer> getBufferRef()
返回支援此OnnxTensor的緩衝區的引用。如果張量不受緩衝區支援(即,它由 ORT 分配的記憶體支援),此方法返回一個空的Optional。對緩衝區元素的更改將反映在本地
OrtValue中,這可用於重複更新單個張量以進行多次不同的推理,而無需分配新的張量,儘管輸入 必須 保持相同的大小和形狀。注意:張量可能引用此緩衝區中的一個連續元素範圍,而不是整個緩衝區。使用者有責任透過尊重位置和限制來管理此資訊。因此,當多個執行緒持有緩衝區的引用時,訪問此引用應被視為有問題。
- 返回
- 緩衝區的引用。
-
getType
public OnnxValue.OnnxValueType getType()
從介面複製的描述:OnnxValue獲取此 OnnxValue 的型別。- 返回
- 值型別。
-
getValue
public java.lang.Object getValue() throws OrtException如果張量是標量,則返回裝箱的原語;如果張量是多維的,則返回原語的多維陣列。Java 多維陣列在超過 2 維時非常慢,在這種情況下,建議您使用下面的
Buffer提取器(例如,getFloatBuffer())。- 返回
- 一個 Java 值。
- 丟擲
OrtException- 如果由於張量無效而無法提取值,或者如果原生代碼遇到錯誤。
-
toString
public java.lang.String toString()
- 覆蓋
- 在類
java.lang.Object中的toString
-
close
public void close()
關閉張量,釋放其底層記憶體(如果不是由 NIO 緩衝區支援)。如果它是由緩衝區支援的,則在緩衝區被垃圾回收時釋放記憶體。
-
getByteBuffer
public java.nio.ByteBuffer getByteBuffer()
返回底層 OnnxTensor 作為 ByteBuffer 的副本。如果 OnnxTensor 包含字串,此方法返回 null,因為它們儲存在 OnnxTensor 之外。
- 返回
- OnnxTensor 的 ByteBuffer 副本。
-
getFloatBuffer
public java.nio.FloatBuffer getFloatBuffer()
如果底層 OnnxTensor 可以無損地轉換為 float(即它是 float、fp16 或 bf16),則返回其作為 FloatBuffer 的副本,否則返回 null。- 返回
- OnnxTensor 的 FloatBuffer 副本。
-
getDoubleBuffer
public java.nio.DoubleBuffer getDoubleBuffer()
如果底層型別是 double,則返回底層 OnnxTensor 作為 DoubleBuffer 的副本,否則返回 null。- 返回
- OnnxTensor 的 DoubleBuffer 副本。
-
getShortBuffer
public java.nio.ShortBuffer getShortBuffer()
如果底層型別是 int16, uint16, fp16 或 bf16,則返回底層 OnnxTensor 作為 ShortBuffer 的副本,否則返回 null。- 返回
- OnnxTensor 的 ShortBuffer 副本。
-
getIntBuffer
public java.nio.IntBuffer getIntBuffer()
如果底層型別是 int32 或 uint32,則返回底層 OnnxTensor 作為 IntBuffer 的副本,否則返回 null。- 返回
- OnnxTensor 的 IntBuffer 副本。
-
getLongBuffer
public java.nio.LongBuffer getLongBuffer()
如果底層型別是 int64 或 uint64,則返回底層 OnnxTensor 作為 LongBuffer 的副本,否則返回 null。- 返回
- OnnxTensor 的 LongBuffer 副本。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.lang.Object data) throws OrtException
從 Java 原語、原語多維陣列或 String 多維陣列建立張量。形狀使用反射從物件中推斷。使用預設分配器。注意:Java 多維陣列不是密集型的,此方法需要為高維陣列遍歷大量指標。對於非 String 型別,建議使用接受
Buffer的createTensor方法之一,例如createTensor(OrtEnvironment, FloatBuffer, long[]),因為這些方法在使用直接緩衝區時可以將資料零複製傳輸到 ORT。- 引數
env- 當前的 OrtEnvironment。data- 要儲存在張量中的資料。- 返回
- 儲存資料的 OnnxTensor。
- 丟擲
OrtException- 如果 onnx runtime 丟擲錯誤。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.lang.String[] data, long[] shape) throws OrtException
從扁平化的字串陣列建立張量。要求陣列按行主序展平。使用預設分配器。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料shape- 張量的形狀- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.FloatBuffer data, long[] shape) throws OrtException
建立由直接 FloatBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.DoubleBuffer data, long[] shape) throws OrtException
建立由直接 DoubleBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape) throws OrtException
建立由直接 ByteBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。告訴執行時它是
OnnxJavaType.INT8。- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape, OnnxJavaType type) throws OrtException
建立由直接 ByteBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。告訴執行時它是指定的型別。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。type- 用於位元組緩衝區元素的型別。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape) throws OrtException
建立由直接 ShortBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape, OnnxJavaType type) throws OrtException
建立由直接 ShortBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。type- 緩衝區中資料的型別,可以是OnnxJavaType.INT16,OnnxJavaType.FLOAT16或OnnxJavaType.BFLOAT16。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.IntBuffer data, long[] shape) throws OrtException
建立由直接 IntBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.LongBuffer data, long[] shape) throws OrtException
建立由直接 LongBuffer 支援的 OnnxTensor。緩衝區應採用 nativeOrder。如果提供的緩衝區不是直接緩衝區,則會建立一個直接副本,其生命週期與張量繫結。使用預設分配器。
- 引數
env- 當前的 OrtEnvironment。data- 張量資料。shape- 張量的形狀。- 返回
- 所需形狀的 OnnxTensor。
- 丟擲
OrtException- 如果發生 onnx 錯誤或資料和形狀不匹配,則丟擲。
-
-