Klasse 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 Methoden

      Alle Methoden Statische Methoden Instanzmethoden Konkrete Methoden 
      Modifikator und Typ Methode Beschreibung
      void close()
      Schließt den Tensor und gibt seinen zugrunde liegenden Speicher frei (falls er nicht von einem NIO-Puffer gesichert wird).
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.lang.Object data)
      Erstellt einen Tensor aus einem Java-Primitiv, einem multidimensionalen Primitiv-Array oder einem multidimensionalen String-Array.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.lang.String[] data, long[] shape)
      Erstellt einen Tensor aus einem abgeflachten String-Array.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape)
      Erstellt einen OnnxTensor, der von einem direkten ByteBuffer gesichert wird.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.nio.ByteBuffer data, long[] shape, OnnxJavaType type)
      Erstellt einen OnnxTensor, der von einem direkten ByteBuffer gesichert wird.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.nio.DoubleBuffer data, long[] shape)
      Erstellt einen OnnxTensor, der von einem direkten DoubleBuffer gesichert wird.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.nio.FloatBuffer data, long[] shape)
      Erstellt einen OnnxTensor, der von einem direkten FloatBuffer gesichert wird.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.nio.IntBuffer data, long[] shape)
      Erstellt einen OnnxTensor, der von einem direkten IntBuffer gesichert wird.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.nio.LongBuffer data, long[] shape)
      Erstellt einen OnnxTensor, der von einem direkten LongBuffer gesichert wird.
      statisch OnnxTensor createTensor​(OrtEnvironment env, java.nio.ShortBuffer data, long[] shape)
      Erstellt einen OnnxTensor, der von einem direkten ShortBuffer gesichert wird.
      statisch OnnxTensor createTensor​(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 diesen OnnxTensor sichert.
      java.nio.ByteBuffer getByteBuffer()
      Gibt eine Kopie des zugrunde liegenden OnnxTensor als ByteBuffer zurück.
      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.
      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.
      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.
      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.
      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.
      OnnxValue.OnnxValueType getType()
      Ruft den Typ dieses OnnxValue ab.
      java.lang.Object getValue()
      Entweder wird ein boxed Primitive zurückgegeben, wenn der Tensor ein Skalar ist, oder ein multidimensionales Array von Primitiven, wenn er mehrere Dimensionen hat.
      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.
      java.lang.String toString()  
      • Methoden geerbt von Klasse java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 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 diesen OnnxTensor sichert. Wenn der Tensor nicht von einem Puffer gesichert wird (d.h. er wird von ORT zugewiesenem Speicher gesichert), gibt diese Methode ein leeres Optional zurück.

        Änderungen an den Puffer-Elementen werden in den nativen OrtValue reflektiert. 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: OnnxValue
        Ruft den Typ dieses OnnxValue ab.
        Rückgabe
        Der Werttyp.
      • getValue

        public java.lang.Object getValue()
                                  throws OrtException
        Entweder 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
        toString in Klasse java.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 einen Buffer akzeptiert, 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.INT8 handelt.

        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 entweder OnnxJavaType.INT16, OnnxJavaType.FLOAT16 oder OnnxJavaType.BFLOAT16 sein.
        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.