Partilhar via


TensorSpan<T> Estrutura

Definição

TensorSpan representa uma região contígua de memória arbitrária. Ao contrário das matrizes, ela pode apontar para memória gerenciada ou nativa ou para a memória alocada na pilha. Ele é seguro de tipo e de memória.

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
Herança
TensorSpan<T>
Atributos

Construtores

TensorSpan<T>(Array)

Cria um novo TensorSpan<T> no Arrayfornecido. O novo TensorSpan<T> terá uma classificação de 1 e um comprimento igual ao comprimento da Arrayfornecida.

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

Cria um novo TensorSpan<T> sobre o Array fornecido usando os deslocamentos, comprimentos e passos de início especificados. Se os passos não forem fornecidos, eles serão calculados automaticamente.

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

Cria um novo TensorSpan<T> sobre o Array fornecido usando os deslocamentos, comprimentos e passos de início especificados. Se os passos não forem fornecidos, eles serão calculados automaticamente.

TensorSpan<T>(Span<T>)

Cria um novo TensorSpan<T> no Span<T>fornecido. O novo TensorSpan<T> terá uma classificação de 1 e um comprimento igual ao comprimento da Span<T>fornecida.

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

Cria uma nova TensorSpan<T> sobre a Span<T> fornecida usando os comprimentos e passos especificados. Se os passos não forem fornecidos, eles serão calculados automaticamente.

TensorSpan<T>(T*, IntPtr)

Cria um novo intervalo sobre o buffer não gerenciado de destino. Claramente isso é bastante perigoso o comprimento não é verificado. Mas se essa criação estiver correta, todos os usos subsequentes estarão corretos.

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

Cria um novo intervalo sobre o buffer não gerenciado de destino. Claramente isso é bastante perigoso, porque o comprimento não é verificado. Mas se essa criação estiver correta, todos os usos subsequentes estarão corretos.

TensorSpan<T>(T[])

Cria um novo intervalo em toda a matriz de destino.

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

Cria um novo intervalo sobre a parte da matriz de destino começando no índice 'start' e terminando no índice 'end' (exclusivo).

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

Cria um novo intervalo sobre a parte da matriz de destino começando no índice 'start' e terminando no índice 'end' (exclusivo).

Propriedades

Empty

Retorna um TensorSpan<T> vazio

FlattenedLength

O número de itens no intervalo.

IsEmpty

Obtém um valor que indica se esse TensorSpan<T> está vazio.

Item[ReadOnlySpan<IntPtr>]

Retorna uma referência ao elemento especificado do TensorSpan.

Item[ReadOnlySpan<NIndex>]

Retorna uma referência ao elemento especificado do TensorSpan.

Item[ReadOnlySpan<NRange>]

Retorna uma fatia do TensorSpan.

Lengths

Obtém o comprimento de cada dimensão neste TensorSpan<T>.

Rank

Obtém a classificação, também conhecida como o número de dimensões, deste TensorSpan<T>.

Strides

Obtém os passos desta TensorSpan<T>

Métodos

Clear()

Limpa o conteúdo desse intervalo.

CopyTo(TensorSpan<T>)

Copia o conteúdo desse intervalo para o intervalo de destino. Se a origem e os destinos se sobrepõem, esse método se comportará como se os valores originais em um local temporário antes do destino ser substituído.

Equals(Object)
Obsoleto.

Não há suporte para esse método, pois os intervalos não podem ser encaixoados. Para comparar dois intervalos, use operator==.

Fill(T)

Preenche o conteúdo desse intervalo com o valor fornecido.

FlattenTo(Span<T>)

Nivela o conteúdo desse intervalo no Span<T>fornecido.

GetEnumerator()

Obtém um enumerador para esse intervalo.

GetHashCode()
Obsoleto.

Não há suporte para esse método, pois os intervalos não podem ser encaixoados.

GetPinnableReference()

Retorna uma referência ao 0º elemento do TensorSpan. Se o TensorSpan estiver vazio, retornará referência nula. Ele pode ser usado para fixação e é necessário para dar suporte ao uso do intervalo dentro de uma instrução fixa.

Slice(ReadOnlySpan<NIndex>)

Retorna uma referência ao elemento especificado do TensorSpan.

Slice(ReadOnlySpan<NRange>)

Forma uma fatia do intervalo determinado

ToString()

Para Span<T>, retorna uma nova instância de cadeia de caracteres que representa os caracteres apontados pelo intervalo. Caso contrário, retorna um String com o nome do tipo e o número de elementos.

TryCopyTo(TensorSpan<T>)

Copia o conteúdo desse intervalo para o intervalo de destino. Se a origem e os destinos se sobrepõem, esse método se comportará como se os valores originais em um local temporário antes do destino ser substituído.

TryFlattenTo(Span<T>)

Nivela o conteúdo desse intervalo no Span<T>fornecido.

Operadores

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

Retorna true se o ponto à esquerda e à direita na mesma memória e tem o mesmo comprimento. Observe que isso não verificar se o conteúdo são iguais.

Implicit(T[] to TensorSpan<T>)

TensorSpan representa uma região contígua de memória arbitrária. Ao contrário das matrizes, ela pode apontar para memória gerenciada ou nativa ou para a memória alocada na pilha. Ele é seguro de tipo e de memória.

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

Converte um TensorSpan<T> em um ReadOnlyTensorSpan<T>.

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

Retorna false se o ponto à esquerda e à direita na mesma memória e tem o mesmo comprimento. Observe que isso não verificar se o conteúdo são iguais.

Métodos de Extensão

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

Difunda os dados de source para destination.

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

Atualiza o tensor tensor com o value em que a filter é verdadeira.

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

Atualiza o tensor tensor com o values em que a filter é verdadeira. Se dimensões não forem as mesmas, uma exceção será gerada.

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

Remodela o tensor de tensor para o lengthsespecificado. Se um dos comprimentos for -1, ele será calculado automaticamente. Não altera o comprimento da memória subjacente nem aloca nova memória. Se a nova forma não for compatível com a forma antiga, uma exceção será gerada.

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

Determina se duas sequências são iguais comparando os elementos usando IEquatable{T}. Equals(T).

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

Define uma fatia da tensor fornecida com a values fornecida para a ranges fornecida

Squeeze<T>(TensorSpan<T>)

Remove todas as dimensões de comprimento um do tensor.

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

Remove o eixo de comprimento um do tensor para o dimensiondeterminado. Se a dimensão não for de comprimento um, ela gerará uma exceção.

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

Cria uma representação String do TensorSpan<T>." />

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

Transmita os dados de tensor para a menor forma difundível compatível com destination e armazene-os em destination Se as formas não forem compatíveis, false será retornado.

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

Insira uma nova dimensão de comprimento 1 que aparecerá na posição da dimensão.

Aplica-se a