Freigeben über


TensorSpan<T> Struktur

Definition

TensorSpan 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 TensorSpan
[System.Diagnostics.CodeAnalysis.Experimental("SYSLIB5001", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public readonly ref struct TensorSpan<T>
[<System.Diagnostics.CodeAnalysis.Experimental("SYSLIB5001", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type TensorSpan<'T> = struct
Public Structure TensorSpan(Of T)

Typparameter

T
Vererbung
TensorSpan<T>
Attribute

Konstruktoren

TensorSpan<T>(Array)

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

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

Erstellt eine neue TensorSpan<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.

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

Erstellt eine neue TensorSpan<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.

TensorSpan<T>(Span<T>)

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

TensorSpan<T>(Span<T>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

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

TensorSpan<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.

TensorSpan<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.

TensorSpan<T>(T[])

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

TensorSpan<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.

TensorSpan<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 einen leeren TensorSpan<T> zurück.

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 TensorSpan zurück.

Item[ReadOnlySpan<NIndex>]

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

Item[ReadOnlySpan<NRange>]

Gibt ein Segment des TensorSpan 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

Clear()

Löscht den Inhalt dieser Spanne.

CopyTo(TensorSpan<T>)

Kopiert den Inhalt dieser 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==.

Fill(T)

Füllt den Inhalt dieser Spanne mit dem angegebenen Wert aus.

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 TensorSpan zurück. Wenn der TensorSpan leer ist, wird der 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 für Span<T>eine neue Instanz von Zeichenfolgen zurück, die die Zeichen darstellt, auf die durch die Spanne verwiesen wird. Andernfalls wird ein String mit dem Namen des Typs und der Anzahl der Elemente zurückgegeben.

TryCopyTo(TensorSpan<T>)

Kopiert den Inhalt dieser 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(TensorSpan<T>, TensorSpan<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 TensorSpan<T>)

TensorSpan 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.

Implicit(TensorSpan<T> to ReadOnlyTensorSpan<T>)

Wandelt eine TensorSpan<T> in eine ReadOnlyTensorSpan<T>um.

Inequality(TensorSpan<T>, TensorSpan<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>(TensorSpan<T>, TensorSpan<T>)

Übertragen Sie die Daten von source auf destination.

FilteredUpdate<T>(TensorSpan<T>, ReadOnlyTensorSpan<Boolean>, T)

Aktualisiert den tensor Tensor mit dem value, in dem die filter wahr ist.

FilteredUpdate<T>(TensorSpan<T>, ReadOnlyTensorSpan<Boolean>, ReadOnlyTensorSpan<T>)

Aktualisiert den tensor Tensor mit dem values, in dem die filter wahr ist. Wenn Dimensionen nicht identisch sind, wird eine Ausnahme ausgelöst.

Reshape<T>(TensorSpan<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>(TensorSpan<T>, ReadOnlyTensorSpan<T>)

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

SetSlice<T>(TensorSpan<T>, ReadOnlyTensorSpan<T>, ReadOnlySpan<NRange>)

Legt einen Datenschnitt der angegebenen tensor mit der bereitgestellten values für die angegebene ranges

Squeeze<T>(TensorSpan<T>)

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

SqueezeDimension<T>(TensorSpan<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>(TensorSpan<T>, ReadOnlySpan<IntPtr>)

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

TryBroadcastTo<T>(TensorSpan<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>(TensorSpan<T>, Int32)

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

Gilt für: