Teilen über


ReadOnlyTensorSpan<T> Struktur

Definition

ReadOnlyTensorSpan stellt einen zusammenhängenden Bereich des beliebigen Speichers dar. Im Gegensatz zu Arrays kann sie entweder auf verwalteten oder systemeigenen Speicher oder auf den im Stapel zugewiesenen Speicher verweisen. Es ist typsicher und speichersicher.

generic <typename T>
public value class ReadOnlyTensorSpan
[System.Diagnostics.CodeAnalysis.Experimental("SYSLIB5001", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public readonly ref struct ReadOnlyTensorSpan<T>
[<System.Diagnostics.CodeAnalysis.Experimental("SYSLIB5001", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type ReadOnlyTensorSpan<'T> = struct
Public Structure ReadOnlyTensorSpan(Of T)

Typparameter

T
Vererbung
ReadOnlyTensorSpan<T>
Attribute

Konstruktoren

ReadOnlyTensorSpan<T>(Array)

Erstellt eine neue ReadOnlyTensorSpan<T> über den bereitgestellten Array. Die neue ReadOnlyTensorSpan<T> hat einen Rang von 1 und eine Länge, die der Länge der angegebenen Arrayentspricht.

ReadOnlyTensorSpan<T>(Array, ReadOnlySpan<Int32>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Erstellt eine neue ReadOnlyTensorSpan<T> über den bereitgestellten Array unter Verwendung der angegebenen Anfangsversätze, Längen und Strides. Wenn die Schritte nicht angegeben werden, werden sie automatisch berechnet.

ReadOnlyTensorSpan<T>(Array, ReadOnlySpan<NIndex>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Erstellt eine neue ReadOnlyTensorSpan<T> über den bereitgestellten Array unter Verwendung der angegebenen Anfangsversätze, Längen und Strides. Wenn die Schritte nicht angegeben werden, werden sie automatisch berechnet.

ReadOnlyTensorSpan<T>(ReadOnlySpan<T>)

Erstellt eine neue ReadOnlyTensorSpan<T> über den bereitgestellten ReadOnlySpan<T>. Die neue ReadOnlyTensorSpan<T> hat einen Rang von 1 und eine Länge, die der Länge der angegebenen ReadOnlySpan<T>entspricht.

ReadOnlyTensorSpan<T>(ReadOnlySpan<T>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Erstellt eine neue ReadOnlyTensorSpan<T> über den bereitgestellten Span<T> mithilfe der angegebenen Längen und Strides. Wenn die Schritte nicht angegeben werden, werden sie automatisch berechnet.

ReadOnlyTensorSpan<T>(T*, IntPtr)

Erstellt eine neue Spanne über den nicht verwalteten Zielpuffer. Klar ist dies ziemlich gefährlich, die Länge wird nicht überprüft. Wenn diese Erstellung jedoch korrekt ist, sind alle nachfolgenden Verwendungen korrekt.

ReadOnlyTensorSpan<T>(T*, IntPtr, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Erstellt eine neue Spanne über den nicht verwalteten Zielpuffer. Das ist eindeutig gefährlich, weil die Länge nicht überprüft wird. Wenn diese Erstellung jedoch korrekt ist, sind alle nachfolgenden Verwendungen korrekt.

ReadOnlyTensorSpan<T>(T[])

Erstellt eine neue Spanne über die gesamte Anzahl der Zielarrays.

ReadOnlyTensorSpan<T>(T[], Index, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Erstellt eine neue Spanne über den Teil des Zielarrays, der am "start"-Index beginnt und am "endenden" Index (exklusiv) endet.

ReadOnlyTensorSpan<T>(T[], Int32, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Erstellt eine neue Spanne über den Teil des Zielarrays, der am "start"-Index beginnt und am "endenden" Index (exklusiv) endet.

Eigenschaften

Empty

Gibt eine schreibgeschützte 0-Länge-Spanne zurück, deren Basis der Nullzeiger ist.

FlattenedLength

Die Anzahl der Elemente in der Spanne.

IsEmpty

Ruft einen Wert ab, der angibt, ob diese TensorSpan<T> leer ist.

Item[ReadOnlySpan<IntPtr>]

Gibt einen Verweis auf das angegebene Element des ReadOnlyTensorSpan zurück.

Item[ReadOnlySpan<NIndex>]

Gibt einen Verweis auf das angegebene Element des ReadOnlyTensorSpan zurück.

Item[ReadOnlySpan<NRange>]

Gibt ein Segment des ReadOnlyTensorSpan zurück.

Lengths

Ruft die Länge der einzelnen Dimensionen in diesem TensorSpan<T>ab.

Rank

Ruft den Rang ab, auch bekannt als die Anzahl der Dimensionen dieses TensorSpan<T>.

Strides

Ruft die Fortschritte dieser TensorSpan<T>

Methoden

CastUp<TDerived>(ReadOnlyTensorSpan<TDerived>)

Wandelt eine schreibgeschützte Spanne von TDerived in eine schreibgeschützte Spanne von Tum.

CopyTo(TensorSpan<T>)

Kopiert den Inhalt dieser schreibgeschützten Spanne in die Zielspanne. Wenn sich die Quelle und ziele überlappen, verhält sich diese Methode so, als ob die ursprünglichen Werte an einem temporären Speicherort vor dem Überschreiben des Ziels überschrieben werden.

Equals(Object)
Veraltet.

Diese Methode wird nicht unterstützt, da Spannen nicht boxen können. Um zwei Spans zu vergleichen, verwenden Sie den Operator==.

FlattenTo(Span<T>)

Flacht den Inhalt dieser Spanne in die bereitgestellte Span<T>.

GetEnumerator()

Ruft einen Enumerator für diese Spanne ab.

GetHashCode()
Veraltet.

Diese Methode wird nicht unterstützt, da Spannen nicht boxen können.

GetPinnableReference()

Gibt einen Verweis auf das 0. Element des ReadOnlyTensorSpan zurück. Wenn der ReadOnlyTensorSpan leer ist, wird ein Nullverweis zurückgegeben. Sie kann zum Anheften verwendet werden und ist erforderlich, um die Verwendung von Span innerhalb einer festen Anweisung zu unterstützen.

Slice(ReadOnlySpan<NIndex>)

Gibt einen Verweis auf das angegebene Element des TensorSpan zurück.

Slice(ReadOnlySpan<NRange>)

Bildet ein Segment aus der angegebenen Spanne.

ToString()

Gibt einen String mit dem Namen des Typs und der Anzahl der Elemente zurück.

TryCopyTo(TensorSpan<T>)

Kopiert den Inhalt dieser schreibgeschützten Spanne in die Zielspanne. Wenn sich die Quelle und ziele überlappen, verhält sich diese Methode so, als ob die ursprünglichen Werte an einem temporären Speicherort vor dem Überschreiben des Ziels überschrieben werden.

TryFlattenTo(Span<T>)

Flacht den Inhalt dieser Spanne in die bereitgestellte Span<T>.

Operatoren

Equality(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

Gibt true zurück, wenn links und rechts am gleichen Speicher und dieselbe Länge aufweisen. Beachten Sie, dass dadurch nicht überprüft wird, ob die Inhalte gleich sind.

Implicit(T[] to ReadOnlyTensorSpan<T>)

ReadOnlyTensorSpan stellt einen zusammenhängenden Bereich des beliebigen Speichers dar. Im Gegensatz zu Arrays kann sie entweder auf verwalteten oder systemeigenen Speicher oder auf den im Stapel zugewiesenen Speicher verweisen. Es ist typsicher und speichersicher.

Inequality(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

Gibt false zurück, wenn links und rechts am gleichen Speicher und dieselbe Länge aufweisen. Beachten Sie, dass dadurch nicht überprüft wird, ob die Inhalte gleich sind.

Erweiterungsmethoden

BroadcastTo<T>(ReadOnlyTensorSpan<T>, TensorSpan<T>)

Übertragen Sie die Daten von source auf destination.

Reshape<T>(ReadOnlyTensorSpan<T>, ReadOnlySpan<IntPtr>)

Formt den tensor Tensor auf den angegebenen lengthsum. Wenn eine der Längen -1 ist, wird sie automatisch berechnet. Ändert weder die Länge des zugrunde liegenden Speichers noch weist er neuen Arbeitsspeicher zu. Wenn das neue Shape nicht mit dem alten Shape kompatibel ist, wird eine Ausnahme ausgelöst.

SequenceEqual<T>(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

Bestimmt, ob zwei Sequenzen gleich sind, indem die Elemente mithilfe von "IEquatable{T}" verglichen werden. Entspricht(T).

Squeeze<T>(ReadOnlyTensorSpan<T>)

Entfernt alle Dimensionen der länge 1 aus der tensor.

SqueezeDimension<T>(ReadOnlyTensorSpan<T>, Int32)

Entfernt die Achse der ersten Achse aus der tensor für die angegebene dimension. Wenn die Dimension nicht von länge 1 ist, löst sie eine Ausnahme aus.

ToString<T>(ReadOnlyTensorSpan<T>, ReadOnlySpan<IntPtr>)

Erstellt eine String Darstellung der ReadOnlyTensorSpan<T>." />

TryBroadcastTo<T>(ReadOnlyTensorSpan<T>, TensorSpan<T>)

Übertragen Sie die Daten von tensor auf das kleinste übertragene Shape, das mit destination kompatibel ist, und speichert sie in destination Wenn die Shapes nicht kompatibel sind, wird "false" zurückgegeben.

Unsqueeze<T>(ReadOnlyTensorSpan<T>, Int32)

Fügen Sie eine neue Dimension der Länge 1 ein, die an der Bemaßungsposition angezeigt wird.

Gilt für: