Partage via


TensorSpan<T> Structure

Définition

TensorSpan représente une région contiguë de mémoire arbitraire. Contrairement aux tableaux, il peut pointer vers la mémoire managée ou native, ou vers la mémoire allouée sur la pile. Il s’agit d’une sécurité de type et d’une mémoire sécurisée.

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)

Paramètres de type

T
Héritage
TensorSpan<T>
Attributs

Constructeurs

TensorSpan<T>(Array)

Crée une TensorSpan<T> sur la Arrayfournie. La nouvelle TensorSpan<T> aura un rang de 1 et une longueur égale à la longueur du Arrayfourni.

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

Crée une TensorSpan<T> sur le Array fourni à l’aide des décalages de début, des longueurs et des pas spécifiés. Si les progrès ne sont pas fournis, ils sont calculés automatiquement.

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

Crée une TensorSpan<T> sur le Array fourni à l’aide des décalages de début, des longueurs et des pas spécifiés. Si les progrès ne sont pas fournis, ils sont calculés automatiquement.

TensorSpan<T>(Span<T>)

Crée une TensorSpan<T> sur la Span<T>fournie. La nouvelle TensorSpan<T> aura un rang de 1 et une longueur égale à la longueur du Span<T>fourni.

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

Crée une TensorSpan<T> sur la Span<T> fournie à l’aide des longueurs et des pas spécifiés. Si les progrès ne sont pas fournis, ils sont calculés automatiquement.

TensorSpan<T>(T*, IntPtr)

Crée une étendue sur la mémoire tampon non managée cible. Il est clairement dangereux que la longueur n’est pas vérifiée. Mais si cette création est correcte, toutes les utilisations suivantes sont correctes.

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

Crée une étendue sur la mémoire tampon non managée cible. Il est évident que c’est très dangereux, parce que la longueur n’est pas vérifiée. Mais si cette création est correcte, toutes les utilisations suivantes sont correctes.

TensorSpan<T>(T[])

Crée une étendue sur l’intégralité du tableau cible.

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

Crée une étendue sur la partie du tableau cible commençant à l’index « start » et se terminant à l’index « end » (exclusif).

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

Crée une étendue sur la partie du tableau cible commençant à l’index « start » et se terminant à l’index « end » (exclusif).

Propriétés

Empty

Retourne un TensorSpan<T> vide

FlattenedLength

Nombre d’éléments dans l’étendue.

IsEmpty

Obtient une valeur indiquant si cette TensorSpan<T> est vide.

Item[ReadOnlySpan<IntPtr>]

Retourne une référence à l’élément spécifié du TensorSpan.

Item[ReadOnlySpan<NIndex>]

Retourne une référence à l’élément spécifié du TensorSpan.

Item[ReadOnlySpan<NRange>]

Retourne une tranche de TensorSpan.

Lengths

Obtient la longueur de chaque dimension dans cette TensorSpan<T>.

Rank

Obtient le rang, comme le nombre de dimensions, de cette TensorSpan<T>.

Strides

Obtient les pas de cette TensorSpan<T>

Méthodes

Clear()

Efface le contenu de cette étendue.

CopyTo(TensorSpan<T>)

Copie le contenu de cette étendue dans l’étendue de destination. Si la source et les destinations se chevauchent, cette méthode se comporte comme si les valeurs d’origine dans un emplacement temporaire avant le remplacement de la destination.

Equals(Object)
Obsolète.

Cette méthode n’est pas prise en charge, car les étendues ne peuvent pas être boxées. Pour comparer deux étendues, utilisez operator==.

Fill(T)

Remplit le contenu de cette étendue avec la valeur donnée.

FlattenTo(Span<T>)

Aplatit le contenu de cette étendue dans la Span<T>fournie.

GetEnumerator()

Obtient un énumérateur pour cette étendue.

GetHashCode()
Obsolète.

Cette méthode n’est pas prise en charge, car les étendues ne peuvent pas être boxées.

GetPinnableReference()

Retourne une référence au 0ème élément du TensorSpan. Si TensorSpan est vide, retourne une référence Null. Il peut être utilisé pour l’épinglage et est nécessaire pour prendre en charge l’utilisation de l’étendue dans une instruction fixe.

Slice(ReadOnlySpan<NIndex>)

Retourne une référence à l’élément spécifié du TensorSpan.

Slice(ReadOnlySpan<NRange>)

Forme une tranche hors de l’étendue donnée

ToString()

Pour Span<T>, retourne une nouvelle instance de chaîne qui représente les caractères pointés par l’étendue. Sinon, retourne une String avec le nom du type et le nombre d’éléments.

TryCopyTo(TensorSpan<T>)

Copie le contenu de cette étendue dans l’étendue de destination. Si la source et les destinations se chevauchent, cette méthode se comporte comme si les valeurs d’origine dans un emplacement temporaire avant le remplacement de la destination.

TryFlattenTo(Span<T>)

Aplatit le contenu de cette étendue dans la Span<T>fournie.

Opérateurs

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

Retourne true si le point gauche et droit à la même mémoire et a la même longueur. Notez que cela n'pas vérifier si le contenu est égal.

Implicit(T[] to TensorSpan<T>)

TensorSpan représente une région contiguë de mémoire arbitraire. Contrairement aux tableaux, il peut pointer vers la mémoire managée ou native, ou vers la mémoire allouée sur la pile. Il s’agit d’une sécurité de type et d’une mémoire sécurisée.

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

Convertit un TensorSpan<T> en ReadOnlyTensorSpan<T>.

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

Retourne false si le point gauche et droit à la même mémoire et a la même longueur. Notez que cela n'pas vérifier si le contenu est égal.

Méthodes d’extension

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

Diffusez les données de source vers destination.

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

Met à jour le capteur tensor avec le value où le filter est vrai.

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

Met à jour le capteur tensor avec le values où le filter est vrai. Si les dimensions ne sont pas identiques, une exception est levée.

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

Redéfinit le tensor de la lengthsspécifiée. Si l’une des longueurs est -1, elle est calculée automatiquement. Ne modifie pas la longueur de la mémoire sous-jacente et n’alloue pas de nouvelle mémoire. Si la nouvelle forme n’est pas compatible avec l’ancienne forme, une exception est levée.

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

Détermine si deux séquences sont égales en comparant les éléments utilisant IEquatable{T}. Equals(T).

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

Définit une tranche du tensor donné avec le values fourni pour le ranges donné

Squeeze<T>(TensorSpan<T>)

Supprime toutes les dimensions de longueur 1 de la tensor.

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

Supprime l’axe de longueur 1 de l'tensor pour le dimensiondonné. Si la dimension n’est pas de longueur, elle lève une exception.

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

Crée une représentation String du TensorSpan<T>. » />

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

Diffusez les données de tensor vers la forme la plus petite compatible avec destination et stockez-les dans destination Si les formes ne sont pas compatibles, false est retourné.

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

Insérez une nouvelle dimension de longueur 1 qui apparaîtra à la position de la dimension.

S’applique à