ReadOnlyTensorSpan<T> 結構

定義

ReadOnlyTensorSpan 代表任意記憶體的連續區域。 不同於陣列,它可以指向Managed或原生記憶體,或指向堆疊上配置的記憶體。 它是類型安全且記憶體安全。

generic <typename T>
public value class ReadOnlyTensorSpan
[System.Diagnostics.CodeAnalysis.Experimental("SYSLIB5001", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public readonly ref struct ReadOnlyTensorSpan<T>
[<System.Diagnostics.CodeAnalysis.Experimental("SYSLIB5001", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type ReadOnlyTensorSpan<'T> = struct
Public Structure ReadOnlyTensorSpan(Of T)

類型參數

T
繼承
ReadOnlyTensorSpan<T>
屬性

建構函式

ReadOnlyTensorSpan<T>(Array)

透過提供的 Array建立新的 ReadOnlyTensorSpan<T>。 新的 ReadOnlyTensorSpan<T> 的排名為 1,長度等於所提供 Array的長度。

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

使用指定的開始位移、長度和步幅,在提供的 Array 上建立新的 ReadOnlyTensorSpan<T>。 如果未提供步幅,則會自動計算這些步幅。

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

使用指定的開始位移、長度和步幅,在提供的 Array 上建立新的 ReadOnlyTensorSpan<T>。 如果未提供步幅,則會自動計算這些步幅。

ReadOnlyTensorSpan<T>(ReadOnlySpan<T>)

透過提供的 ReadOnlySpan<T>建立新的 ReadOnlyTensorSpan<T>。 新的 ReadOnlyTensorSpan<T> 的排名為 1,長度等於所提供 ReadOnlySpan<T>的長度。

ReadOnlyTensorSpan<T>(ReadOnlySpan<T>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

使用指定的長度和步幅,在提供的 Span<T> 上建立新的 ReadOnlyTensorSpan<T>。 如果未提供步幅,則會自動計算這些步幅。

ReadOnlyTensorSpan<T>(T*, IntPtr)

在目標 Unmanaged 緩衝區上建立新的範圍。 顯然,這是相當危險的長度沒有檢查。 但是,如果此建立正確,則所有後續使用都正確。

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

在目標 Unmanaged 緩衝區上建立新的範圍。 顯然,這是相當危險的,因為長度沒有檢查。 但是,如果此建立正確,則所有後續使用都正確。

ReadOnlyTensorSpan<T>(T[])

在整個目標陣列上建立新的範圍。

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

在從 『start』 索引開始的目標數位部分上建立新的範圍,並結束於 『end' index (exclusive)。

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

在從 『start』 索引開始的目標數位部分上建立新的範圍,並結束於 『end' index (exclusive)。

屬性

Empty

傳回長度為 0 的唯讀範圍,其基底為 Null 指標。

FlattenedLength

範圍中的項目數目。

IsEmpty

取得值,指出這個 TensorSpan<T> 是否為空白。

Item[ReadOnlySpan<IntPtr>]

傳回 ReadOnlyTensorSpan 指定項目的參考。

Item[ReadOnlySpan<NIndex>]

傳回 ReadOnlyTensorSpan 指定項目的參考。

Item[ReadOnlySpan<NRange>]

傳回 ReadOnlyTensorSpan 的配量。

Lengths

取得這個 TensorSpan<T>中每個維度的長度。

Rank

取得此 TensorSpan<T>的排名,也稱為維度數目。

Strides

取得這個 TensorSpan<T> 的步幅

方法

CastUp<TDerived>(ReadOnlyTensorSpan<TDerived>)

TDerived 的唯讀範圍轉換為 T的唯讀範圍。

CopyTo(TensorSpan<T>)

將這個唯讀範圍的內容複製到目的地範圍。 如果來源和目的地重疊,這個方法的行為就如同在覆寫目的地之前暫存位置的原始值一樣。

Equals(Object)
已淘汰.

不支援此方法,因為無法進行 Boxed。 若要比較兩個範圍,請使用 operator==。

FlattenTo(Span<T>)

將這個範圍的內容扁平化為提供的 Span<T>

GetEnumerator()

取得這個範圍的列舉值。

GetHashCode()
已淘汰.

不支援此方法,因為無法進行 Boxed。

GetPinnableReference()

傳回 ReadOnlyTensorSpan 第 0 個元素的參考。 如果 ReadOnlyTensorSpan 是空的,則傳回 Null 參考。 它可用於釘選,而且必須支援在固定語句中使用範圍。

Slice(ReadOnlySpan<NIndex>)

傳回 TensorSpan 指定項目的參考。

Slice(ReadOnlySpan<NRange>)

從指定的範圍形成配量

ToString()

傳回具有型別名稱和項目數的 String

TryCopyTo(TensorSpan<T>)

將這個唯讀範圍的內容複製到目的地範圍。 如果來源和目的地重疊,這個方法的行為就如同在覆寫目的地之前暫存位置的原始值一樣。

TryFlattenTo(Span<T>)

將這個範圍的內容扁平化為提供的 Span<T>

運算子

Equality(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

如果位於相同記憶體的左右點,且長度相同,則傳回 true。 請注意,這不會 檢查,以查看 內容是否相等。

Implicit(T[] to ReadOnlyTensorSpan<T>)

ReadOnlyTensorSpan 代表任意記憶體的連續區域。 不同於陣列,它可以指向Managed或原生記憶體,或指向堆疊上配置的記憶體。 它是類型安全且記憶體安全。

Inequality(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

如果位於相同記憶體的左右點,且長度相同,則傳回 false。 請注意,這不會 檢查,以查看 內容是否相等。

擴充方法

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

將資料從 source 廣播至 destination

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

tensor 張量重新調整為指定的 lengths。 如果其中一個長度為 -1,則會自動計算。 不會變更基礎記憶體的長度,也不會配置新的記憶體。 如果新圖形與舊圖形不相容,則會擲回例外狀況。

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

使用 IEquatable{T} 比較元素,判斷兩個序列是否相等。Equals(T)。

Squeeze<T>(ReadOnlyTensorSpan<T>)

tensor移除長度一的所有維度。

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

從指定 dimensiontensor 中移除長度為1的座標軸。 如果維度不是長度,則會擲回例外狀況。

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

建立 ReadOnlyTensorSpan<T>String 表示法。/>

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

將數據從 tensor 廣播到與 destination 相容的最小可廣播圖形,並將其儲存在 destination 如果圖形不相容,則會傳回 false。

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

插入長度為 1 的新維度,其會出現在維度位置。

適用於