Klasse OnnxTensor
- java.lang.Object
-
- ai.onnxruntime.OnnxTensorLike
-
- ai.onnxruntime.OnnxTensor
-
- Alle implementierten Schnittstellen
OnnxValue,java.lang.AutoCloseable
public class OnnxTensor extends OnnxTensorLike
Ein Java-Objekt, das einen OnnxTensor umschließt. Tensoren sind die Hauptanwendung für die Bibliothek und können auch als Ausgaben zurückgegeben werden.
-
-
Zusammenfassung der verschachtelten Klassen
-
Verschachtelte Klassen/Schnittstellen geerbt von der Schnittstelle ai.onnxruntime.OnnxValue
OnnxValue.OnnxValueType
-
-
Zusammenfassung der Felder
-
Felder geerbt von der Klasse ai.onnxruntime.OnnxTensorLike
allocatorHandle, closed, info, nativeHandle
-
-
Zusammenfassung der Methoden
Alle Methoden Statische Methoden Instanzmethoden Konkrete Methoden Modifikator und Typ Methode Beschreibung voidclose()Schließt den Tensor und gibt seinen zugrunde liegenden Speicher frei (falls er nicht von einem NIO-Puffer gesichert wird).statisch OnnxTensorcreateTensor(OrtEnvironment env, java.lang.Object data)Erstellt einen Tensor aus einem Java-Primitiv, einem multidimensionalen Primitiv-Array oder einem multidimensionalen String-Array.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.lang.String[] data, long[] shape)Erstellt einen Tensor aus einem abgeflachten String-Array.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape)Erstellt einen OnnxTensor, der von einem direkten ByteBuffer gesichert wird.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape, OnnxJavaType type)Erstellt einen OnnxTensor, der von einem direkten ByteBuffer gesichert wird.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.DoubleBuffer data, long[] shape)Erstellt einen OnnxTensor, der von einem direkten DoubleBuffer gesichert wird.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.FloatBuffer data, long[] shape)Erstellt einen OnnxTensor, der von einem direkten FloatBuffer gesichert wird.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.IntBuffer data, long[] shape)Erstellt einen OnnxTensor, der von einem direkten IntBuffer gesichert wird.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.LongBuffer data, long[] shape)Erstellt einen OnnxTensor, der von einem direkten LongBuffer gesichert wird.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape)Erstellt einen OnnxTensor, der von einem direkten ShortBuffer gesichert wird.statisch OnnxTensorcreateTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape, OnnxJavaType type)Erstellt einen OnnxTensor, der von einem direkten ShortBuffer gesichert wird.java.util.Optional<java.nio.Buffer>getBufferRef()Gibt eine Referenz auf den Puffer zurück, der diesenOnnxTensorsichert.java.nio.ByteBuffergetByteBuffer()Gibt eine Kopie des zugrunde liegenden OnnxTensor als ByteBuffer zurück.java.nio.DoubleBuffergetDoubleBuffer()Gibt eine Kopie des zugrunde liegenden OnnxTensor als DoubleBuffer zurück, wenn der zugrunde liegende Typ ein Double ist, andernfalls gibt er null zurück.java.nio.FloatBuffergetFloatBuffer()Gibt eine Kopie des zugrunde liegenden OnnxTensor als FloatBuffer zurück, wenn er verlustfrei in einen Float umgewandelt werden kann (d.h.java.nio.IntBuffergetIntBuffer()Gibt eine Kopie des zugrunde liegenden OnnxTensor als IntBuffer zurück, wenn der zugrunde liegende Typ int32 oder uint32 ist, andernfalls gibt er null zurück.java.nio.LongBuffergetLongBuffer()Gibt eine Kopie des zugrunde liegenden OnnxTensor als LongBuffer zurück, wenn der zugrunde liegende Typ int64 oder uint64 ist, andernfalls gibt er null zurück.java.nio.ShortBuffergetShortBuffer()Gibt eine Kopie des zugrunde liegenden OnnxTensor als ShortBuffer zurück, wenn der zugrunde liegende Typ int16, uint16, fp16 oder bf16 ist, andernfalls gibt er null zurück.OnnxValue.OnnxValueTypegetType()Ruft den Typ dieses OnnxValue ab.java.lang.ObjectgetValue()Entweder wird ein boxed Primitive zurückgegeben, wenn der Tensor ein Skalar ist, oder ein multidimensionales Array von Primitiven, wenn er mehrere Dimensionen hat.booleanownsBuffer()Gibt true zurück, wenn der Puffer in diesem OnnxTensor bei der Erstellung dieses Tensors erstellt wurde, d.h. er ist eine Kopie eines vom Benutzer bereitgestellten Puffers oder Arrays und kann die einzige Referenz auf diesen Puffer halten.java.lang.StringtoString()-
Methoden geerbt von der Klasse ai.onnxruntime.OnnxTensorLike
checkClosed, getInfo, isClosed
-
-
-
-
Detail der Methoden
-
ownsBuffer
public boolean ownsBuffer()
Gibt true zurück, wenn der Puffer in diesem OnnxTensor bei der Erstellung dieses Tensors erstellt wurde, d.h. er ist eine Kopie eines vom Benutzer bereitgestellten Puffers oder Arrays und kann die einzige Referenz auf diesen Puffer halten.Wenn dies wahr ist, wurde der zugrunde liegende Puffer vom Benutzereingang kopiert, sodass Benutzer den Zustand dieses Puffers nicht ändern können, ohne zuerst die Referenz über
getBufferRef()abzurufen.- Rückgabe
- True, wenn der Puffer in diesem OnnxTensor bei der Erstellung von ihm zugewiesen wurde (d.h. er ist eine Kopie eines Benutzerpuffers oder -arrays).
-
getBufferRef
public java.util.Optional<java.nio.Buffer> getBufferRef()
Gibt eine Referenz auf den Puffer zurück, der diesenOnnxTensorsichert. Wenn der Tensor nicht von einem Puffer gesichert wird (d.h. er wird von ORT zugewiesenem Speicher gesichert), gibt diese Methode ein leeresOptionalzurück.Änderungen an den Puffer-Elementen werden in den nativen
OrtValuereflektiert. Dies kann verwendet werden, um einen einzelnen Tensor wiederholt für mehrere verschiedene Inferenzdurchläufe zu aktualisieren, ohne neue Tensoren zuzuweisen. Die Eingaben **müssen** jedoch gleich groß und gleich geformt bleiben.Hinweis: Der Tensor kann sich auf einen zusammenhängenden Bereich von Elementen in diesem Puffer beziehen, nicht auf den gesamten Puffer. Es liegt in der Verantwortung des Benutzers, diese Information durch Beachtung der Position und des Limits zu verwalten. Folglich sollte der Zugriff auf diese Referenz als problematisch angesehen werden, wenn mehrere Threads Referenzen auf den Puffer halten.
- Rückgabe
- Eine Referenz auf den Puffer.
-
getType
public OnnxValue.OnnxValueType getType()
Beschreibung kopiert von der Schnittstelle:OnnxValueRuft den Typ dieses OnnxValue ab.- Rückgabe
- Der Werttyp.
-
getValue
public java.lang.Object getValue() throws OrtExceptionEntweder wird ein boxed Primitive zurückgegeben, wenn der Tensor ein Skalar ist, oder ein multidimensionales Array von Primitiven, wenn er mehrere Dimensionen hat.Java multidimensionale Arrays sind für mehr als 2 Dimensionen recht langsam. In diesem Fall wird empfohlen, die unten aufgeführten
Buffer-Extraktoren zu verwenden (z. B.getFloatBuffer()).- Rückgabe
- Ein Java-Wert.
- Wirft
OrtException- Wenn der Wert nicht als Tensor extrahiert werden konnte, weil er ungültig ist, oder wenn der native Code einen Fehler hatte.
-
toString
public java.lang.String toString()
- Überschreibt
toStringin Klassejava.lang.Object
-
close
public void close()
Schließt den Tensor und gibt seinen zugrunde liegenden Speicher frei (falls er nicht von einem NIO-Puffer gesichert wird). Wenn er von einem Puffer gesichert wird, wird der Speicher freigegeben, wenn der Puffer vom GC gesammelt wird.
-
getByteBuffer
public java.nio.ByteBuffer getByteBuffer()
Gibt eine Kopie des zugrunde liegenden OnnxTensor als ByteBuffer zurück.Diese Methode gibt null zurück, wenn der OnnxTensor Strings enthält, da diese extern zum OnnxTensor gespeichert werden.
- Rückgabe
- Ein ByteBuffer-Kopie des OnnxTensor.
-
getFloatBuffer
public java.nio.FloatBuffer getFloatBuffer()
Gibt eine Kopie des zugrunde liegenden OnnxTensor als FloatBuffer zurück, wenn er verlustfrei in einen Float umgewandelt werden kann (d.h. er ist ein Float, fp16 oder bf16), andernfalls gibt er null zurück.- Rückgabe
- Ein FloatBuffer-Kopie des OnnxTensor.
-
getDoubleBuffer
public java.nio.DoubleBuffer getDoubleBuffer()
Gibt eine Kopie des zugrunde liegenden OnnxTensor als DoubleBuffer zurück, wenn der zugrunde liegende Typ ein Double ist, andernfalls gibt er null zurück.- Rückgabe
- Ein DoubleBuffer-Kopie des OnnxTensor.
-
getShortBuffer
public java.nio.ShortBuffer getShortBuffer()
Gibt eine Kopie des zugrunde liegenden OnnxTensor als ShortBuffer zurück, wenn der zugrunde liegende Typ int16, uint16, fp16 oder bf16 ist, andernfalls gibt er null zurück.- Rückgabe
- Ein ShortBuffer-Kopie des OnnxTensor.
-
getIntBuffer
public java.nio.IntBuffer getIntBuffer()
Gibt eine Kopie des zugrunde liegenden OnnxTensor als IntBuffer zurück, wenn der zugrunde liegende Typ int32 oder uint32 ist, andernfalls gibt er null zurück.- Rückgabe
- Ein IntBuffer-Kopie des OnnxTensor.
-
getLongBuffer
public java.nio.LongBuffer getLongBuffer()
Gibt eine Kopie des zugrunde liegenden OnnxTensor als LongBuffer zurück, wenn der zugrunde liegende Typ int64 oder uint64 ist, andernfalls gibt er null zurück.- Rückgabe
- Ein LongBuffer-Kopie des OnnxTensor.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.lang.Object data) throws OrtException
Erstellt einen Tensor aus einem Java-Primitiv, einem multidimensionalen Primitiv-Array oder einem multidimensionalen String-Array. Die Form wird durch Reflexion aus dem Objekt abgeleitet. Der Standard-Allocator wird verwendet.Hinweis: Java multidimensionale Arrays sind nicht dicht und diese Methode erfordert das Durchlaufen einer großen Anzahl von Zeigern für hochdimensionale Arrays. Für andere Typen als Strings wird empfohlen, eine der
createTensor-Methoden zu verwenden, die einenBufferakzeptiert, z. B.createTensor(OrtEnvironment, FloatBuffer, long[]), da diese Methoden beim Verwenden von direkten Puffern eine null-Kopie für die Datenübertragung an ORT ermöglichen.- Parameter
env- Die aktuelle OrtEnvironment.data- Die Daten, die im Tensor gespeichert werden sollen.- Rückgabe
- Ein OnnxTensor, der die Daten speichert.
- Wirft
OrtException- Wenn die onnx Laufzeit einen Fehler ausgelöst hat.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.lang.String[] data, long[] shape) throws OrtException
Erstellt einen Tensor aus einem abgeflachten String-Array.Erfordert, dass das Array in Zeilenmajor-Reihenfolge abgeflacht ist. Verwendet den Standard-Allocator.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.FloatBuffer data, long[] shape) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten FloatBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.DoubleBuffer data, long[] shape) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten DoubleBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten ByteBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator. Teilt der Laufzeit mit, dass es sich um
OnnxJavaType.INT8handelt.- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape, OnnxJavaType type) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten ByteBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator. Teilt der Laufzeit den angegebenen Typ mit.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.type- Der Typ, der für die Elemente des ByteBuffers verwendet werden soll.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten ShortBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape, OnnxJavaType type) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten ShortBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.type- Der Typ der Daten im Puffer kann entwederOnnxJavaType.INT16,OnnxJavaType.FLOAT16oderOnnxJavaType.BFLOAT16sein.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.IntBuffer data, long[] shape) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten IntBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
createTensor
public static OnnxTensor createTensor(OrtEnvironment env, java.nio.LongBuffer data, long[] shape) throws OrtException
Erstellt einen OnnxTensor, der von einem direkten LongBuffer gesichert wird. Der Puffer sollte in nativem Format vorliegen.Wenn der bereitgestellte Puffer kein direkter Puffer ist, wird eine direkte Kopie erstellt, die an die Lebensdauer des Tensors gebunden ist. Verwendet den Standard-Allocator.
- Parameter
env- Die aktuelle OrtEnvironment.data- Die Tensor-Daten.shape- Die Form des Tensors.- Rückgabe
- Ein OnnxTensor der erforderlichen Form.
- Wirft
OrtException- Ausgelöst, wenn ein onnx-Fehler auftritt oder wenn Daten und Form nicht übereinstimmen.
-
-