public struct TensorVisitorPlan<Base>
TensorVisitorPlan mendekati [WritableKeyPath<Base, Tensor<Float>]
tetapi lebih efisien. Hal ini berguna untuk menulis pengoptimal umum yang ingin memetakan gradien, bobot yang ada, dan indeks yang dapat digunakan untuk menemukan bobot tambahan yang disimpan. Ini sedikit lebih efisien (~2x) tetapi bisa lebih baik karena mengorbankan overhead yang sedikit lebih tinggi (dereferensi penunjuk tambahan) karena tidak harus melakukan pekerjaan O(kedalaman_of_tree) yang diperlukan dengan daftar biasa untuk melacak masing-masing KeyPath.
Ratakan rencana sebagai satu
[WritableKeyPath<Base, Tensor<Float>]
.Pernyataan
public var allTensorKeyPaths: [WritableKeyPath<Base, Tensor<Float>>] { get }
Kumpulkan semua tensor secara efisien.
Pernyataan
public func allTensors(_ v: Base) -> [Tensor<Float>]
Memetakan dua nilai bertipe
Base
secara efisien dan menerapkan fungsi pemetaan. Mengembalikan jumlah tensor. ArgumenInt
tambahan disediakan untuk memungkinkan pengindeksan ke dalam daftar tambahan Tensor dengan jumlah Tensor yang sama dengan rencana.Pernyataan
func populateMask<Base>(_ mask: inout [Bool], _ kp: WritableKeyPath<Base, Tensor<Float>>)
Temukan semua kunci yang diakhiri dengan jalur kunci tertentu.
Pernyataan
public func keysEnding<Base>(with kp: WritableKeyPath<Base, Tensor<Float>>) -> [Bool]
Pernyataan
func findFirstIndex<TrueBase, T>( _ rootKeyPath: WritableKeyPath<TrueBase, Base>, _ prefix: WritableKeyPath<TrueBase, T>, _ i: inout Int ) -> Bool
Temukan indeks jalur tombol pertama yang dimulai dengan awalan tertentu. Catatan: Semua lapisan array mendukung pengindeksan 1-past-the-end.
Pernyataan
func firstIndex<T>(withPrefix prefix: WritableKeyPath<Base, T>) -> Int
Temukan semua indeks kunci dalam rentang yang ditentukan oleh dua awalan KeyPath: [bawah, atas)
Pernyataan
public func allKeysBetween<T, U>(lower: WritableKeyPath<Base, T>, upper: WritableKeyPath<Base, U>) -> [Bool]
Membuat rencana untuk mengunjungi semua tensor dalam instance
Base
tertentu. Rencana ini dapat dialihkan ke versi Base yang setara secara struktural.Pernyataan
public init(_ obj: Base)