Udostępnij za pośrednictwem


TensorSpan<T> Struktura

Definicja

TensorSpan reprezentuje ciągły region dowolnej pamięci. W przeciwieństwie do tablic może wskazywać zarządzaną lub natywną pamięć albo pamięć przydzieloną na stos. Jest bezpieczny pod kątem typów i bezpieczny pod kątem pamięci.

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)

Parametry typu

T
Dziedziczenie
TensorSpan<T>
Atrybuty

Konstruktory

TensorSpan<T>(Array)

Tworzy nowe TensorSpan<T> w podanym Array. Nowy TensorSpan<T> będzie miał rangę 1 i długość równą długości podanej Array.

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

Tworzy nowe TensorSpan<T> nad podanym Array przy użyciu określonych przesunięć, długości i kroków rozpoczęcia. Jeśli nie podano kroków, zostaną one automatycznie obliczone.

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

Tworzy nowe TensorSpan<T> nad podanym Array przy użyciu określonych przesunięć, długości i kroków rozpoczęcia. Jeśli nie podano kroków, zostaną one automatycznie obliczone.

TensorSpan<T>(Span<T>)

Tworzy nowe TensorSpan<T> w podanym Span<T>. Nowy TensorSpan<T> będzie miał rangę 1 i długość równą długości podanej Span<T>.

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

Tworzy nowe TensorSpan<T> nad podanymi Span<T> przy użyciu określonych długości i kroków. Jeśli nie podano kroków, zostaną one automatycznie obliczone.

TensorSpan<T>(T*, IntPtr)

Tworzy nowe zakresy dla docelowego buforu niezarządzanego. Oczywiście jest to dość niebezpieczne, długość nie jest sprawdzana. Jeśli jednak tworzenie jest poprawne, wszystkie kolejne zastosowania są poprawne.

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

Tworzy nowe zakresy dla docelowego buforu niezarządzanego. Oczywiście jest to dość niebezpieczne, ponieważ długość nie jest sprawdzana. Jeśli jednak tworzenie jest poprawne, wszystkie kolejne zastosowania są poprawne.

TensorSpan<T>(T[])

Tworzy nowe zakresy w całej tablicy docelowej.

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

Tworzy nowy zakres na części tablicy docelowej rozpoczynającej się od indeksu "start" i kończącego się na indeksie "end" (wyłączność).

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

Tworzy nowy zakres na części tablicy docelowej rozpoczynającej się od indeksu "start" i kończącego się na indeksie "end" (wyłączność).

Właściwości

Empty

Zwraca pusty TensorSpan<T>

FlattenedLength

Liczba elementów w zakresie.

IsEmpty

Pobiera wartość wskazującą, czy ta TensorSpan<T> jest pusta.

Item[ReadOnlySpan<IntPtr>]

Zwraca odwołanie do określonego elementu tensorSpan.

Item[ReadOnlySpan<NIndex>]

Zwraca odwołanie do określonego elementu tensorSpan.

Item[ReadOnlySpan<NRange>]

Zwraca wycinek tensorSpan.

Lengths

Pobiera długość każdego wymiaru w tym TensorSpan<T>.

Rank

Pobiera rangę( czyli liczbę wymiarów) tego TensorSpan<T>.

Strides

Pobiera kroki tego TensorSpan<T>

Metody

Clear()

Czyści zawartość tego zakresu.

CopyTo(TensorSpan<T>)

Kopiuje zawartość tego zakresu do zakresu docelowego. Jeśli źródło i miejsca docelowe nakładają się na siebie, ta metoda zachowuje się tak, jakby oryginalne wartości w lokalizacji tymczasowej przed zastąpieniem miejsca docelowego.

Equals(Object)
Przestarzałe.

Ta metoda nie jest obsługiwana, ponieważ nie można boksować zakresów. Aby porównać dwa zakresy, użyj operatora==.

Fill(T)

Wypełnia zawartość tego zakresu daną wartością.

FlattenTo(Span<T>)

Spłaszcza zawartość tego zakresu w podanym Span<T>.

GetEnumerator()

Pobiera moduł wyliczający dla tego zakresu.

GetHashCode()
Przestarzałe.

Ta metoda nie jest obsługiwana, ponieważ nie można boksować zakresów.

GetPinnableReference()

Zwraca odwołanie do 0. elementu tensorSpan. Jeśli element TensorSpan jest pusty, zwraca odwołanie o wartości null. Można go użyć do przypinania i jest wymagany do obsługi użycia zakresu w stałej instrukcji.

Slice(ReadOnlySpan<NIndex>)

Zwraca odwołanie do określonego elementu tensorSpan.

Slice(ReadOnlySpan<NRange>)

Tworzy wycinkę z danego zakresu

ToString()

W przypadku Span<T>zwraca nowe wystąpienie ciągu, które reprezentuje znaki wskazywane przez zakres. W przeciwnym razie zwraca String o nazwie typu i liczbie elementów.

TryCopyTo(TensorSpan<T>)

Kopiuje zawartość tego zakresu do zakresu docelowego. Jeśli źródło i miejsca docelowe nakładają się na siebie, ta metoda zachowuje się tak, jakby oryginalne wartości w lokalizacji tymczasowej przed zastąpieniem miejsca docelowego.

TryFlattenTo(Span<T>)

Spłaszcza zawartość tego zakresu w podanym Span<T>.

Operatory

Equality(TensorSpan<T>, TensorSpan<T>)

Zwraca wartość true, jeśli lewy i prawy punkt w tej samej pamięci ma taką samą długość. Należy pamiętać, że nie sprawdzić, czy zawartość jest równa.

Implicit(T[] to TensorSpan<T>)

TensorSpan reprezentuje ciągły region dowolnej pamięci. W przeciwieństwie do tablic może wskazywać zarządzaną lub natywną pamięć albo pamięć przydzieloną na stos. Jest bezpieczny pod kątem typów i bezpieczny pod kątem pamięci.

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

Konwertuje TensorSpan<T> na ReadOnlyTensorSpan<T>.

Inequality(TensorSpan<T>, TensorSpan<T>)

Zwraca wartość false, jeśli lewy i prawy punkt w tej samej pamięci i ma taką samą długość. Należy pamiętać, że nie sprawdzić, czy zawartość jest równa.

Metody rozszerzania

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

Rozgłaś dane z source do destination.

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

Aktualizuje tensor tensor za pomocą value, w którym filter jest spełniony.

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

Aktualizuje tensor tensor za pomocą values, w którym filter jest spełniony. Jeśli wymiary nie są takie same, zgłaszany jest wyjątek.

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

Zmienia tensor tensor na określony lengths. Jeśli jedna z długości wynosi -1, zostanie ona obliczona automatycznie. Nie zmienia długości pamięci bazowej ani nie przydziela nowej pamięci. Jeśli nowy kształt nie jest zgodny ze starym kształtem, zgłaszany jest wyjątek.

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

Określa, czy dwie sekwencje są równe, porównując elementy przy użyciu funkcji IEquatable{T}. Equals(T).

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

Ustawia wycinek podanej tensor z podanym values dla danego ranges

Squeeze<T>(TensorSpan<T>)

Usuwa wszystkie wymiary długości jednej z tensor.

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

Usuwa oś długości jednej z tensor dla danego dimension. Jeśli wymiar nie ma długości, zgłosi wyjątek.

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

Tworzy String reprezentację TensorSpan<T>." />

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

Rozgłaś dane z tensor do najmniejszego kształtu nadającego się do emisji zgodnego z destination i zapisuje je w destination Jeśli kształty nie są zgodne, zwracana jest wartość false.

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

Wstaw nowy wymiar długości 1, który będzie wyświetlany w pozycji wymiaru.

Dotyczy