Comparteix a través de


TensorSpan<T> Estructura

Definición

TensorSpan representa una región contigua de memoria arbitraria. A diferencia de las matrices, puede apuntar a la memoria administrada o nativa, o a la memoria asignada en la pila. Es seguro para tipos y seguro para 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)

Parámetros de tipo

T
Herencia
TensorSpan<T>
Atributos

Constructores

TensorSpan<T>(Array)

Crea un nuevo TensorSpan<T> en el Arrayproporcionado. El nuevo TensorSpan<T> tendrá un rango de 1 y una longitud igual a la longitud del Arrayproporcionado.

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

Crea un nuevo TensorSpan<T> sobre el Array proporcionado mediante los desplazamientos de inicio, las longitudes y los pasos especificados. Si no se proporcionan los pasos, se calcularán automáticamente.

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

Crea un nuevo TensorSpan<T> sobre el Array proporcionado mediante los desplazamientos de inicio, las longitudes y los pasos especificados. Si no se proporcionan los pasos, se calcularán automáticamente.

TensorSpan<T>(Span<T>)

Crea un nuevo TensorSpan<T> en el Span<T>proporcionado. El nuevo TensorSpan<T> tendrá un rango de 1 y una longitud igual a la longitud del Span<T>proporcionado.

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

Crea un nuevo TensorSpan<T> sobre el Span<T> proporcionado mediante las longitudes y los pasos especificados. Si no se proporcionan los pasos, se calcularán automáticamente.

TensorSpan<T>(T*, IntPtr)

Crea un nuevo intervalo sobre el búfer no administrado de destino. Claramente esto es bastante peligroso, no se comprueba la longitud. Pero si esta creación es correcta, todos los usos posteriores son correctos.

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

Crea un nuevo intervalo sobre el búfer no administrado de destino. Claramente esto es bastante peligroso, porque la longitud no se comprueba. Pero si esta creación es correcta, todos los usos posteriores son correctos.

TensorSpan<T>(T[])

Crea un nuevo intervalo en toda la matriz de destino.

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

Crea un nuevo intervalo sobre la parte de la matriz de destino que comienza en el índice "start" y termina en el índice "end" (exclusivo).

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

Crea un nuevo intervalo sobre la parte de la matriz de destino que comienza en el índice "start" y termina en el índice "end" (exclusivo).

Propiedades

Empty

Devuelve un TensorSpan<T> vacío

FlattenedLength

Número de elementos del intervalo.

IsEmpty

Obtiene un valor que indica si este TensorSpan<T> está vacío.

Item[ReadOnlySpan<IntPtr>]

Devuelve una referencia al elemento especificado de TensorSpan.

Item[ReadOnlySpan<NIndex>]

Devuelve una referencia al elemento especificado de TensorSpan.

Item[ReadOnlySpan<NRange>]

Devuelve un segmento de TensorSpan.

Lengths

Obtiene la longitud de cada dimensión de este TensorSpan<T>.

Rank

Obtiene el rango, también conocido como el número de dimensiones, de este TensorSpan<T>.

Strides

Obtiene los pasos de este TensorSpan<T>

Métodos

Clear()

Borra el contenido de este intervalo.

CopyTo(TensorSpan<T>)

Copia el contenido de este intervalo en el intervalo de destino. Si el origen y los destinos se superponen, este método se comporta como si los valores originales de una ubicación temporal antes de sobrescribir el destino.

Equals(Object)
Obsoletos.

Este método no se admite, ya que no se pueden boxing los intervalos. Para comparar dos intervalos, use operator==.

Fill(T)

Rellena el contenido de este intervalo con el valor especificado.

FlattenTo(Span<T>)

Aplana el contenido de este intervalo en el Span<T>proporcionado.

GetEnumerator()

Obtiene un enumerador para este intervalo.

GetHashCode()
Obsoletos.

Este método no se admite, ya que no se pueden boxing los intervalos.

GetPinnableReference()

Devuelve una referencia al 0 elemento del TensorSpan. Si tensorSpan está vacío, devuelve una referencia nula. Se puede usar para anclar y es necesario para admitir el uso de span dentro de una instrucción fija.

Slice(ReadOnlySpan<NIndex>)

Devuelve una referencia al elemento especificado de TensorSpan.

Slice(ReadOnlySpan<NRange>)

Forma un segmento fuera del intervalo especificado

ToString()

Para Span<T>, devuelve una nueva instancia de cadena que representa los caracteres a los que apunta el intervalo. De lo contrario, devuelve un String con el nombre del tipo y el número de elementos.

TryCopyTo(TensorSpan<T>)

Copia el contenido de este intervalo en el intervalo de destino. Si el origen y los destinos se superponen, este método se comporta como si los valores originales de una ubicación temporal antes de sobrescribir el destino.

TryFlattenTo(Span<T>)

Aplana el contenido de este intervalo en el Span<T>proporcionado.

Operadores

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

Devuelve true si el punto izquierdo y derecho en la misma memoria y tienen la misma longitud. Tenga en cuenta que esto no comprobar si el contenido del es igual.

Implicit(T[] to TensorSpan<T>)

TensorSpan representa una región contigua de memoria arbitraria. A diferencia de las matrices, puede apuntar a la memoria administrada o nativa, o a la memoria asignada en la pila. Es seguro para tipos y seguro para memoria.

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

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

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

Devuelve false si el punto izquierdo y derecho están en la misma memoria y tienen la misma longitud. Tenga en cuenta que esto no comprobar si el contenido del es igual.

Métodos de extensión

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

Difunda los datos de source a destination.

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

Actualiza el tensor de tensor con el value donde el filter es true.

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

Actualiza el tensor de tensor con el values donde el filter es true. Si las dimensiones no son iguales, se produce una excepción.

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

Vuelve a dar forma al tensor de tensor al lengthsespecificado. Si una de las longitudes es -1, se calculará automáticamente. No cambia la longitud de la memoria subyacente ni asigna nueva memoria. Si la nueva forma no es compatible con la forma anterior, se produce una excepción.

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

Determina si dos secuencias son iguales comparando los elementos mediante IEquatable{T}. Equals(T).

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

Establece un segmento del tensor especificado con el values proporcionado para el ranges especificado

Squeeze<T>(TensorSpan<T>)

Quita todas las dimensiones de longitud uno de la tensor.

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

Quita el eje de longitud uno de los tensor del dimensionespecificado. Si la dimensión no es de longitud, se producirá una excepción.

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

Crea una representación String del TensorSpan<T>". />

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

Difunda los datos de tensor a la forma más pequeña compatible con destination y la almacena en destination Si las formas no son compatibles, se devuelve false.

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

Inserte una nueva dimensión de longitud 1 que aparecerá en la posición de la dimensión.

Se aplica a