public struct TensorVisitorPlan<Base>
TensorVisitorPlan ประมาณ [WritableKeyPath<Base, Tensor<Float>]
แต่มีประสิทธิภาพมากกว่า สิ่งนี้มีประโยชน์สำหรับการเขียนเครื่องมือเพิ่มประสิทธิภาพทั่วไปที่ต้องการแมปกับการไล่ระดับสี น้ำหนักที่มีอยู่ และดัชนีที่สามารถใช้เพื่อค้นหาน้ำหนักที่เก็บไว้เสริม สิ่งนี้มีประสิทธิภาพมากกว่าเล็กน้อย (~ 2x) แต่อาจจะดีกว่าเพราะมันแลกกับค่าใช้จ่ายที่สูงขึ้นเล็กน้อย (การอ้างอิงตัวชี้เพิ่มเติม) โดยที่ไม่ต้องทำงาน O(deep_of_tree) ที่จำเป็นสำหรับรายการธรรมดาเพื่อติดตาม KeyPath แต่ละรายการ
เรียบเรียงแผนเป็น
[WritableKeyPath<Base, Tensor<Float>]
เดียวคำประกาศ
public var allTensorKeyPaths: [WritableKeyPath<Base, Tensor<Float>>] { get }
รวบรวมเทนเซอร์ทั้งหมดอย่างมีประสิทธิภาพ
คำประกาศ
public func allTensors(_ v: Base) -> [Tensor<Float>]
แมปค่าประเภท
Base
สองค่าอย่างมีประสิทธิภาพ และใช้ฟังก์ชันการแมป ส่งกลับจำนวนเทนเซอร์ อาร์กิวเมนต์Int
เพิ่มเติมมีไว้เพื่อให้สามารถจัดทำดัชนีลงในรายการเสริมของเทนเซอร์ที่นับเทนเซอร์เดียวกันกับแผนคำประกาศ
func populateMask<Base>(_ mask: inout [Bool], _ kp: WritableKeyPath<Base, Tensor<Float>>)
ค้นหาคีย์ทั้งหมดที่ลงท้ายด้วยเส้นทางคีย์เฉพาะ
คำประกาศ
public func keysEnding<Base>(with kp: WritableKeyPath<Base, Tensor<Float>>) -> [Bool]
คำประกาศ
func findFirstIndex<TrueBase, T>( _ rootKeyPath: WritableKeyPath<TrueBase, Base>, _ prefix: WritableKeyPath<TrueBase, T>, _ i: inout Int ) -> Bool
ค้นหาดัชนีของเส้นทางคีย์แรกที่เริ่มต้นด้วยคำนำหน้าเฉพาะ หมายเหตุ: เลเยอร์อาเรย์ทั้งหมดรองรับการจัดทำดัชนีแบบ 1 ที่ผ่านมาถึงจุดสิ้นสุด
คำประกาศ
func firstIndex<T>(withPrefix prefix: WritableKeyPath<Base, T>) -> Int
ค้นหาดัชนีคีย์ทั้งหมดในช่วงที่กำหนดโดยคำนำหน้า KeyPath สองคำ: [ล่าง, บน)
คำประกาศ
public func allKeysBetween<T, U>(lower: WritableKeyPath<Base, T>, upper: WritableKeyPath<Base, U>) -> [Bool]
สร้างแผนเพื่อเยี่ยมชมเทนเซอร์ทั้งหมดในกรณีเฉพาะของ
Base
แผนนี้สามารถถ่ายโอนไปยัง Base เวอร์ชันที่มีโครงสร้างเทียบเท่าได้คำประกาศ
public init(_ obj: Base)