Condividi tramite


TensorSpan<T> Struct

Definizione

TensorSpan rappresenta un'area contigua di memoria arbitraria. A differenza delle matrici, può puntare alla memoria gestita o nativa o alla memoria allocata nello stack. È indipendente dai tipi e sicuro per la memoria.

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)

Parametri di tipo

T
Ereditarietà
TensorSpan<T>
Attributi

Costruttori

TensorSpan<T>(Array)

Crea una nuova TensorSpan<T> sulla Arrayfornita. Il nuovo TensorSpan<T> avrà un rango pari a 1 e una lunghezza uguale alla lunghezza del Arrayspecificato.

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

Crea un nuovo TensorSpan<T> sull'Array fornito utilizzando gli scostamento iniziale, le lunghezze e gli scostamento specificati. Se i progressi non vengono forniti, verranno calcolati automaticamente.

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

Crea un nuovo TensorSpan<T> sull'Array fornito utilizzando gli scostamento iniziale, le lunghezze e gli scostamento specificati. Se i progressi non vengono forniti, verranno calcolati automaticamente.

TensorSpan<T>(Span<T>)

Crea una nuova TensorSpan<T> sulla Span<T>fornita. Il nuovo TensorSpan<T> avrà un rango pari a 1 e una lunghezza uguale alla lunghezza del Span<T>specificato.

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

Crea un nuovo TensorSpan<T> sull'Span<T> fornito utilizzando le lunghezze e i progressi specificati. Se i progressi non vengono forniti, verranno calcolati automaticamente.

TensorSpan<T>(T*, IntPtr)

Crea un nuovo intervallo sul buffer non gestito di destinazione. Chiaramente questo è abbastanza pericoloso la lunghezza non è controllata. Tuttavia, se la creazione è corretta, tutti gli usi successivi sono corretti.

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

Crea un nuovo intervallo sul buffer non gestito di destinazione. Chiaramente questo è abbastanza pericoloso, perché la lunghezza non è controllata. Tuttavia, se la creazione è corretta, tutti gli usi successivi sono corretti.

TensorSpan<T>(T[])

Crea un nuovo intervallo sull'intera matrice di destinazione.

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

Crea un nuovo intervallo sulla parte della matrice di destinazione a partire dall'indice 'start' e termina in corrispondenza dell'indice 'end' (esclusivo).

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

Crea un nuovo intervallo sulla parte della matrice di destinazione a partire dall'indice 'start' e termina in corrispondenza dell'indice 'end' (esclusivo).

Proprietà

Empty

Restituisce un TensorSpan<T> vuoto

FlattenedLength

Numero di elementi nell'intervallo.

IsEmpty

Ottiene un valore che indica se questo TensorSpan<T> è vuoto.

Item[ReadOnlySpan<IntPtr>]

Restituisce un riferimento all'elemento specificato di TensorSpan.

Item[ReadOnlySpan<NIndex>]

Restituisce un riferimento all'elemento specificato di TensorSpan.

Item[ReadOnlySpan<NRange>]

Restituisce una sezione di TensorSpan.

Lengths

Ottiene la lunghezza di ogni dimensione in questo TensorSpan<T>.

Rank

Ottiene il rango, noto anche come numero di dimensioni, di questo TensorSpan<T>.

Strides

Ottiene gli passi di questa TensorSpan<T>

Metodi

Clear()

Cancella il contenuto di questo intervallo.

CopyTo(TensorSpan<T>)

Copia il contenuto di questo intervallo nell'intervallo di destinazione. Se l'origine e le destinazioni si sovrappongono, questo metodo si comporta come se i valori originali in una posizione temporanea prima della sovrascrittura della destinazione.

Equals(Object)
Obsoleti.

Questo metodo non è supportato perché non è possibile eseguire il boxing degli intervalli. Per confrontare due intervalli, usare operator==.

Fill(T)

Riempie il contenuto di questo intervallo con il valore specificato.

FlattenTo(Span<T>)

Appiattisce il contenuto di questo intervallo nell'oggetto specificato Span<T>.

GetEnumerator()

Ottiene un enumeratore per questo intervallo.

GetHashCode()
Obsoleti.

Questo metodo non è supportato perché non è possibile eseguire il boxing degli intervalli.

GetPinnableReference()

Restituisce un riferimento all'elemento 0 di TensorSpan. Se TensorSpan è vuoto, restituisce un riferimento Null. Può essere usato per l'aggiunta ed è necessario per supportare l'uso di span all'interno di un'istruzione fissa.

Slice(ReadOnlySpan<NIndex>)

Restituisce un riferimento all'elemento specificato di TensorSpan.

Slice(ReadOnlySpan<NRange>)

Crea una sezione all'esterno dell'intervallo specificato

ToString()

Per Span<T>, restituisce una nuova istanza di stringa che rappresenta i caratteri a cui punta l'intervallo. In caso contrario, restituisce un String con il nome del tipo e il numero di elementi.

TryCopyTo(TensorSpan<T>)

Copia il contenuto di questo intervallo nell'intervallo di destinazione. Se l'origine e le destinazioni si sovrappongono, questo metodo si comporta come se i valori originali in una posizione temporanea prima della sovrascrittura della destinazione.

TryFlattenTo(Span<T>)

Appiattisce il contenuto di questo intervallo nell'oggetto specificato Span<T>.

Operatori

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

Restituisce true se il punto sinistro e destro nella stessa memoria e ha la stessa lunghezza. Si noti che questa operazione non verificare se il contenuto del è uguale.

Implicit(T[] to TensorSpan<T>)

TensorSpan rappresenta un'area contigua di memoria arbitraria. A differenza delle matrici, può puntare alla memoria gestita o nativa o alla memoria allocata nello stack. È indipendente dai tipi e sicuro per la memoria.

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

Converte un TensorSpan<T> in un ReadOnlyTensorSpan<T>.

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

Restituisce false se il punto sinistro e destro con la stessa memoria e ha la stessa lunghezza. Si noti che questa operazione non verificare se il contenuto del è uguale.

Metodi di estensione

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

Trasmettere i dati da source a destination.

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

Aggiorna il tensore tensor con il value in cui il filter è true.

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

Aggiorna il tensore tensor con il values in cui il filter è true. Se le dimensioni non sono uguali, viene generata un'eccezione.

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

Modifica il tensore tensor al lengthsspecificato. Se una delle lunghezze è -1, verrà calcolata automaticamente. Non modifica la lunghezza della memoria sottostante né alloca nuova memoria. Se la nuova forma non è compatibile con la forma precedente, viene generata un'eccezione.

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

Determina se due sequenze sono uguali confrontando gli elementi usando IEquatable{T}. Equals(T).

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

Imposta una sezione del tensor specificato con il values specificato per il ranges specificato

Squeeze<T>(TensorSpan<T>)

Rimuove tutte le dimensioni di lunghezza 1 dalla tensor.

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

Rimuove l'asse di lunghezza 1 dalla tensor per il dimensionspecificato. Se la dimensione non è di lunghezza 1, genererà un'eccezione.

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

Crea una rappresentazione String del TensorSpan<T>". />

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

Trasmettere i dati da tensor alla forma broadcastable più piccola compatibile con destination e archiviarla in destination Se le forme non sono compatibili, viene restituito false.

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

Inserire una nuova dimensione di lunghezza 1 che verrà visualizzata nella posizione della dimensione.

Si applica a