Bagikan melalui


TensorSpan<T> Struktur

Definisi

TensorSpan mewakili wilayah memori arbitrer yang berdekatan. Tidak seperti array, ia dapat menunjuk ke memori terkelola atau asli, atau ke memori yang dialokasikan pada tumpukan. Ini adalah jenis-aman dan memori-aman.

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)

Jenis parameter

T
Warisan
TensorSpan<T>
Atribut

Konstruktor

TensorSpan<T>(Array)

Membuat TensorSpan<T> baru melalui Arrayyang disediakan. TensorSpan<T> baru akan memiliki peringkat 1 dan panjang yang sama dengan panjang Arrayyang disediakan.

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

Membuat TensorSpan<T> baru melalui Array yang disediakan menggunakan offset, panjang, dan langkah awal yang ditentukan. Jika langkah-langkah tidak disediakan, langkah tersebut akan dihitung secara otomatis.

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

Membuat TensorSpan<T> baru melalui Array yang disediakan menggunakan offset, panjang, dan langkah awal yang ditentukan. Jika langkah-langkah tidak disediakan, langkah tersebut akan dihitung secara otomatis.

TensorSpan<T>(Span<T>)

Membuat TensorSpan<T> baru melalui Span<T>yang disediakan. TensorSpan<T> baru akan memiliki peringkat 1 dan panjang yang sama dengan panjang Span<T>yang disediakan.

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

Membuat TensorSpan<T> baru di atas Span<T> yang disediakan menggunakan panjang dan langkah yang ditentukan. Jika langkah-langkah tidak disediakan, langkah tersebut akan dihitung secara otomatis.

TensorSpan<T>(T*, IntPtr)

Membuat rentang baru di atas buffer target yang tidak dikelola. Jelas ini cukup berbahaya panjangnya tidak diperiksa. Tetapi jika pembuatan ini benar, maka semua penggunaan berikutnya sudah benar.

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

Membuat rentang baru di atas buffer target yang tidak dikelola. Jelas ini cukup berbahaya, karena panjangnya tidak diperiksa. Tetapi jika pembuatan ini benar, maka semua penggunaan berikutnya sudah benar.

TensorSpan<T>(T[])

Membuat rentang baru di atas keseluruhan array target.

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

Membuat rentang baru di atas bagian array target yang dimulai pada indeks 'start' dan berakhir di indeks 'end' (eksklusif).

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

Membuat rentang baru di atas bagian array target yang dimulai pada indeks 'start' dan berakhir di indeks 'end' (eksklusif).

Properti

Empty

Mengembalikan TensorSpan<T> kosong

FlattenedLength

Jumlah item dalam rentang.

IsEmpty

Mendapatkan nilai yang menunjukkan apakah TensorSpan<T> ini kosong.

Item[ReadOnlySpan<IntPtr>]

Mengembalikan referensi ke elemen tensorSpan yang ditentukan.

Item[ReadOnlySpan<NIndex>]

Mengembalikan referensi ke elemen tensorSpan yang ditentukan.

Item[ReadOnlySpan<NRange>]

Mengembalikan iringan TensorSpan.

Lengths

Mendapatkan panjang setiap dimensi dalam TensorSpan<T>ini.

Rank

Mendapatkan peringkat, alias jumlah dimensi, dari TensorSpan<T>ini .

Strides

Mendapatkan langkah-langkah dari TensorSpan<T> ini

Metode

Clear()

Menghapus isi rentang ini.

CopyTo(TensorSpan<T>)

Menyalin isi rentang ini ke dalam rentang tujuan. Jika sumber dan tujuan tumpang tindih, metode ini berulah seolah-olah nilai asli di lokasi sementara sebelum tujuan ditimpa.

Equals(Object)
Kedaluwarsa.

Metode ini tidak didukung karena rentang tidak dapat dikotak. Untuk membandingkan dua rentang, gunakan operator==.

Fill(T)

Mengisi isi rentang ini dengan nilai yang diberikan.

FlattenTo(Span<T>)

Meratakan isi rentang ini ke dalam Span<T>yang disediakan.

GetEnumerator()

Mendapatkan enumerator untuk rentang ini.

GetHashCode()
Kedaluwarsa.

Metode ini tidak didukung karena rentang tidak dapat dikotak.

GetPinnableReference()

Mengembalikan referensi ke elemen ke-0 dari TensorSpan. Jika TensorSpan kosong, mengembalikan referensi null. Ini dapat digunakan untuk menyematkan dan diperlukan untuk mendukung penggunaan rentang dalam pernyataan tetap.

Slice(ReadOnlySpan<NIndex>)

Mengembalikan referensi ke elemen tensorSpan yang ditentukan.

Slice(ReadOnlySpan<NRange>)

Membentuk iringan dari rentang yang diberikan

ToString()

Untuk Span<T>, mengembalikan instans string baru yang mewakili karakter yang ditunjukkan oleh rentang. Jika tidak, mengembalikan String dengan nama jenis dan jumlah elemen.

TryCopyTo(TensorSpan<T>)

Menyalin isi rentang ini ke dalam rentang tujuan. Jika sumber dan tujuan tumpang tindih, metode ini berulah seolah-olah nilai asli di lokasi sementara sebelum tujuan ditimpa.

TryFlattenTo(Span<T>)

Meratakan isi rentang ini ke dalam Span<T>yang disediakan.

Operator

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

Mengembalikan true jika titik kiri dan kanan pada memori yang sama dan memiliki panjang yang sama. Perhatikan bahwa ini tidak tidak memeriksa untuk melihat apakah konten sama.

Implicit(T[] to TensorSpan<T>)

TensorSpan mewakili wilayah memori arbitrer yang berdekatan. Tidak seperti array, ia dapat menunjuk ke memori terkelola atau asli, atau ke memori yang dialokasikan pada tumpukan. Ini adalah jenis-aman dan memori-aman.

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

Mengonversi TensorSpan<T> menjadi ReadOnlyTensorSpan<T>.

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

Mengembalikan false jika titik kiri dan kanan pada memori yang sama dan memiliki panjang yang sama. Perhatikan bahwa ini tidak tidak memeriksa untuk melihat apakah konten sama.

Metode Ekstensi

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

Siarkan data dari source ke destination.

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

Memperbarui tensor tensor dengan value di mana filter benar.

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

Memperbarui tensor tensor dengan values di mana filter benar. Jika dimensi tidak sama, pengecualian akan dilemparkan.

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

Menyusun ulang tensor tensor ke lengthsyang ditentukan . Jika salah satu panjangnya adalah -1, panjangnya akan dihitung secara otomatis. Tidak mengubah panjang memori yang mendasar atau tidak mengalokasikan memori baru. Jika bentuk baru tidak kompatibel dengan bentuk lama, pengecualian akan dilemparkan.

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

Menentukan apakah dua urutan sama dengan membandingkan elemen menggunakan IEquatable{T}. Sama dengan(T).

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

Menetapkan iringan tensor yang diberikan dengan values yang disediakan untuk ranges yang diberikan

Squeeze<T>(TensorSpan<T>)

Menghapus semua dimensi panjang satu dari tensor.

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

Menghapus sumbu panjang satu dari tensor untuk dimensionyang diberikan. Jika dimensi tidak panjang, dimensi akan melemparkan pengecualian.

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

Membuat representasi String dari TensorSpan<T>." />

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

Siarkan data dari tensor ke bentuk terkecil yang dapat disiarkan yang kompatibel dengan destination dan menyimpannya di destination Jika bentuk tidak kompatibel, false dikembalikan.

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

Sisipkan dimensi baru dengan panjang 1 yang akan muncul pada posisi dimensi.

Berlaku untuk