共用方式為


TensorSpan<T> 結構

定義

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

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)

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

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

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

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

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

TensorSpan<T>(Span<T>)

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

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

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

TensorSpan<T>(T*, IntPtr)

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

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

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

TensorSpan<T>(T[])

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

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

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

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

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

屬性

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)
已淘汰.

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

Fill(T)

以指定的值填入此範圍的內容。

FlattenTo(Span<T>)

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

GetEnumerator()

取得這個範圍的列舉值。

GetHashCode()
已淘汰.

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

GetPinnableReference()

傳回 TensorSpan 第 0 個元素的參考。 如果 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 代表任意記憶體的連續區域。 不同於陣列,它可以指向Managed或原生記憶體,或指向堆疊上配置的記憶體。 它是類型安全且記憶體安全。

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)

使用 filter 為 true 的 value 更新 tensor 張量。

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

使用 filter 為 true 的 values 更新 tensor 張量。 如果維度不同,則會擲回例外狀況。

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>)

使用指定 ranges 提供的 values,設定指定 tensor 的配量

Squeeze<T>(TensorSpan<T>)

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

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

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

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

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

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

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

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

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

適用於