Поделиться через


TensorSpan<T> Структура

Определение

TensorSpan представляет собой смежный регион произвольной памяти. В отличие от массивов, он может указывать либо на управляемую или собственную память, либо на память, выделенную в стеке. Он является типобезопасной и безопасной для памяти.

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)

Параметры типа

T
Наследование
TensorSpan<T>
Атрибуты

Конструкторы

TensorSpan<T>(Array)

Создает новый TensorSpan<T> над предоставленным Array. Новый TensorSpan<T> будет иметь ранг 1 и длину, равную длине предоставленного Array.

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

Создает новый TensorSpan<T> над предоставленным Array с помощью указанных смещений, длин и успехов. Если шаги не предоставляются, они будут автоматически вычисляться.

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

Создает новый TensorSpan<T> над предоставленным Array с помощью указанных смещений, длин и успехов. Если шаги не предоставляются, они будут автоматически вычисляться.

TensorSpan<T>(Span<T>)

Создает новый TensorSpan<T> над предоставленным Span<T>. Новый TensorSpan<T> будет иметь ранг 1 и длину, равную длине предоставленного Span<T>.

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

Создает новый TensorSpan<T> над предоставленным Span<T> с помощью указанных длин и успехов. Если шаги не предоставляются, они будут автоматически вычисляться.

TensorSpan<T>(T*, IntPtr)

Создает новый диапазон по целевому неуправляемого буфера. Очевидно, что это довольно опасно, длина не проверяется. Но если это создание правильно, то все последующие использования правильны.

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

Создает новый диапазон по целевому неуправляемого буфера. Очевидно, что это довольно опасно, потому что длина не проверяется. Но если это создание правильно, то все последующие использования правильны.

TensorSpan<T>(T[])

Создает новый диапазон по всему целевому массиву.

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

Создает новый диапазон по части целевого массива, начиная с индекса start и заканчивая индексом end (эксклюзивным).

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

Создает новый диапазон по части целевого массива, начиная с индекса start и заканчивая индексом end (эксклюзивным).

Свойства

Empty

Возвращает пустую TensorSpan<T>

FlattenedLength

Количество элементов в диапазоне.

IsEmpty

Возвращает значение, указывающее, является ли этот TensorSpan<T> пустым.

Item[ReadOnlySpan<IntPtr>]

Возвращает ссылку на указанный элемент TensorSpan.

Item[ReadOnlySpan<NIndex>]

Возвращает ссылку на указанный элемент TensorSpan.

Item[ReadOnlySpan<NRange>]

Возвращает срез TensorSpan.

Lengths

Возвращает длину каждого измерения в этом TensorSpan<T>.

Rank

Получает ранг, а также количество измерений этого TensorSpan<T>.

Strides

Получает шаги этого TensorSpan<T>

Методы

Clear()

Очищает содержимое этого диапазона.

CopyTo(TensorSpan<T>)

Копирует содержимое этого диапазона в целевой диапазон. Если источник и назначения перекрываются, этот метод ведет себя так, как если исходные значения во временном расположении перед назначением перезаписываются.

Equals(Object)
Устаревшие..

Этот метод не поддерживается, так как диапазоны нельзя упаковать. Чтобы сравнить два диапазона, используйте оператор==.

Fill(T)

Заполняет содержимое этого диапазона заданным значением.

FlattenTo(Span<T>)

Неструктурирует содержимое этого диапазона в предоставленный Span<T>.

GetEnumerator()

Возвращает перечислитель для этого диапазона.

GetHashCode()
Устаревшие..

Этот метод не поддерживается, так как диапазоны нельзя упаковать.

GetPinnableReference()

Возвращает ссылку на 0-й элемент TensorSpan. Если TensorSpan пуст, возвращает ссылку NULL. Его можно использовать для закрепления и требуется для поддержки использования диапазона в фиксированной инструкции.

Slice(ReadOnlySpan<NIndex>)

Возвращает ссылку на указанный элемент TensorSpan.

Slice(ReadOnlySpan<NRange>)

Формирует срез из заданного диапазона

ToString()

Для Span<T>возвращает новый экземпляр строки, представляющий символы, на которые указывает диапазон. В противном случае возвращает String с именем типа и количеством элементов.

TryCopyTo(TensorSpan<T>)

Копирует содержимое этого диапазона в целевой диапазон. Если источник и назначения перекрываются, этот метод ведет себя так, как если исходные значения во временном расположении перед назначением перезаписываются.

TryFlattenTo(Span<T>)

Неструктурирует содержимое этого диапазона в предоставленный Span<T>.

Операторы

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

Возвращает значение true, если левая и правая точка в той же памяти и имеют ту же длину. Обратите внимание, что это не проверить, равны ли содержимое .

Implicit(T[] to TensorSpan<T>)

TensorSpan представляет собой смежный регион произвольной памяти. В отличие от массивов, он может указывать либо на управляемую или собственную память, либо на память, выделенную в стеке. Он является типобезопасной и безопасной для памяти.

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

Преобразует TensorSpan<T> в ReadOnlyTensorSpan<T>.

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

Возвращает значение false, если левая и правая точка в той же памяти и имеют ту же длину. Обратите внимание, что это не проверить, равны ли содержимое .

Методы расширения

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

Передача данных из source в destination.

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

Обновляет tensor тензор с value, где filter имеет значение true.

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

Обновляет tensor тензор с values, где filter имеет значение true. Если измерения не совпадают, создается исключение.

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

Изменяет tensor тензор на указанный lengths. Если одна из длин равна -1, она будет вычисляться автоматически. Не изменяет длину базовой памяти и не выделяет новую память. Если новая фигура несовместима со старой фигурой, создается исключение.

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

Определяет, равны ли две последовательности, сравнивая элементы с помощью IEquatable{T}. Equals(T).

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

Задает срез заданного tensor с предоставленным values для заданного ranges

Squeeze<T>(TensorSpan<T>)

Удаляет все измерения длины из tensor.

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

Удаляет ось длины из tensor для заданного dimension. Если измерение не имеет длины, это приведет к возникновению исключения.

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

Создает String представление TensorSpan<T>." />

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

Передача данных из tensor в наименьшую широковещательную фигуру, совместимую с destination, и сохраняет ее в destination Если фигуры несовместимы, возвращается значение false.

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

Вставьте новое измерение длины 1, которое будет отображаться в позиции измерения.

Применяется к